WP_Plugin_Install_List_Table::prepare_items() –

You appear to be a bot. Output may be restricted

Description

Usage

WP_Plugin_Install_List_Table::prepare_items();

Parameters

Returns

void

Source

File name: wordpress/wp-admin/includes/class-wp-plugin-install-list-table.php


Lines:

1 to 100 of 203
  public function prepare_items() {
    require_once ABSPATH . 'wp-admin/includes/plugin-install.php';

    global $tabs, $tab, $paged, $type, $term;

    wp_reset_vars( array( 'tab' ) );

    $paged = $this->get_pagenum();

    $per_page = 36;

    // These are the tabs which are shown on the page.
    $tabs = array();

    if ( 'search' === $tab ) {
      $tabs['search'] = __( 'Search Results' );
    }

    if ( 'beta' === $tab || str_contains( get_bloginfo( 'version' ), '-' ) ) {
      $tabs['beta'] = _x( 'Beta Testing', 'Plugin Installer' );
    }

    $tabs['featured']    = _x( 'Featured', 'Plugin Installer' );
    $tabs['popular']     = _x( 'Popular', 'Plugin Installer' );
    $tabs['recommended'] = _x( 'Recommended', 'Plugin Installer' );
    $tabs['favorites']   = _x( 'Favorites', 'Plugin Installer' );

    if ( current_user_can( 'upload_plugins' ) ) {
      /*
			 * No longer a real tab. Here for filter compatibility.
			 * Gets skipped in get_views().
			 */
      $tabs['upload'] = __( 'Upload Plugin' );
    }

    $nonmenu_tabs = array( 'plugin-information' ); // Valid actions to perform which do not have a Menu item.

    
/**
 * Filters the tabs shown on the Add Plugins screen.
 *
 * @since 2.7.0
 *
 * @param string[] $tabs The tabs shown on the Add Plugins screen. Defaults include
 *                       'featured', 'popular', 'recommended', 'favorites', and 'upload'.
 */
    $tabs = apply_filters( 'install_plugins_tabs', $tabs );

    
/**
 * Filters tabs not associated with a menu item on the Add Plugins screen.
 *
 * @since 2.7.0
 *
 * @param string[] $nonmenu_tabs The tabs that don't have a menu item on the Add Plugins screen.
 */
    $nonmenu_tabs = apply_filters( 'install_plugins_nonmenu_tabs', $nonmenu_tabs );

    // If a non-valid menu tab has been selected, And it's not a non-menu action.
    if ( empty( $tab ) || ( ! isset( $tabs[ $tab ] ) && ! in_array( $tab, (array) $nonmenu_tabs, true ) ) ) {
      $tab = key( $tabs );
    }

    $installed_plugins = $this->WP_Plugin_Install_List_Table::get_installed_plugins();

    $args = array(
      'page'     => $paged,
      'per_page' => $per_page,
      // Send the locale to the API so it can provide context-sensitive results.
      'locale'   => get_user_locale(),
    );

    switch ( $tab ) {
      case 'search':
        $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term';
        $term = isset( $_REQUEST['s'] ) ? wp_unslash( $_REQUEST['s'] ) : '';

        switch ( $type ) {
          case 'tag':
            $args['tag'] = sanitize_title_with_dashes( $term );
            break;
          case 'term':
            $args['search'] = $term;
            break;
          case 'author':
            $args['author'] = $term;
            break;
        }

        break;

      case 'featured':
      case 'popular':
      case 'new':
      case 'beta':
        $args['browse'] = $tab;
        break;
      case 'recommended':
        $args['browse'] = $tab;
        // Include the list of installed plugins so we can get relevant results.

 View on GitHub View on Trac