wp_dashboard_plugins_output

函数


wp_dashboard_plugins_output ( $rss, $args = array() )
参数
  • (string)
    $rss
    The RSS feed URL.
    Required:
  • (array)
    $args
    Array of arguments for this RSS feed.
    Required:
    Default: array()
定义位置
  • wp-admin/includes/deprecated.php
    , line 1323
引入
2.5.0
弃用
4.8.0

Display plugins text for the WordPress news widget.

function wp_dashboard_plugins_output( $rss, $args = array() ) {
	_deprecated_function( __FUNCTION__, '4.8.0' );

	// Plugin feeds plus link to install them.
	$popular = fetch_feed( $args['url']['popular'] );

	if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) {
		$plugin_slugs = array_keys( get_plugins() );
		set_transient( 'plugin_slugs', $plugin_slugs, DAY_IN_SECONDS );
	}

	echo '
    ‘;

    foreach ( array( $popular ) as $feed ) {
    if ( is_wp_error( $feed ) || ! $feed->get_item_quantity() )
    continue;

    $items = $feed->get_items(0, 5);

    // Pick a random, non-installed plugin.
    while ( true ) {
    // Abort this foreach loop iteration if there’s no plugins left of this type.
    if ( 0 === count($items) )
    continue 2;

    $item_key = array_rand($items);
    $item = $items[$item_key];

    list($link, $frag) = explode( ‘#’, $item->get_link() );

    $link = esc_url($link);
    if ( preg_match( ‘|/([^/]+?)/?$|’, $link, $matches ) )
    $slug = $matches[1];
    else {
    unset( $items[$item_key] );
    continue;
    }

    // Is this random plugin’s slug already installed? If so, try again.
    reset( $plugin_slugs );
    foreach ( $plugin_slugs as $plugin_slug ) {
    if ( $slug == substr( $plugin_slug, 0, strlen( $slug ) ) ) {
    unset( $items[$item_key] );
    continue 2;
    }
    }

    // If we get to this point, then the random plugin isn’t installed and we can stop the while().
    break;
    }

    // Eliminate some common badly formed plugin descriptions.
    while ( ( null !== $item_key = array_rand($items) ) && false !== strpos( $items[$item_key]->get_description(), ‘Plugin Name:’ ) )
    unset($items[$item_key]);

    if ( !isset($items[$item_key]) )
    continue;

    $raw_title = $item->get_title();

    $ilink = wp_nonce_url(‘plugin-install.php?tab=plugin-information&plugin=’ . $slug, ‘install-plugin_’ . $slug) . ‘&TB_iframe=true&width=600&height=800’;
    echo ‘

  • ‘ . __( ‘Popular Plugin’ ) . ‘: ‘ . esc_html( $raw_title ) .
    ‘ (‘ . __( ‘Install’ ) . ‘)
  • ‘;

    $feed->__destruct();
    unset( $feed );
    }

    echo ‘

‘;
}