WP_Theme_Install_List_Table::prepare_items() –

You appear to be a bot. Output may be restricted

Description

Usage

WP_Theme_Install_List_Table::prepare_items();

Parameters

Returns

void

Source

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

1 to 100 of 136
  public function prepare_items() {
    require ABSPATH . 'wp-admin/includes/theme-install.php';

    global $tabs, $tab, $paged, $type, $theme_field_defaults;
    wp_reset_vars( array( 'tab' ) );

    $search_terms  = array();
    $search_string = '';
    if ( ! empty( $_REQUEST['s'] ) ) {
      $search_string = strtolower( wp_unslash( $_REQUEST['s'] ) );
      $search_terms  = array_unique( array_filter( array_map( 'trim', explode( ',', $search_string ) ) ) );
    }

    if ( ! empty( $_REQUEST['features'] ) ) {
      $this->features = $_REQUEST['features'];
    }

    $paged = $this->get_pagenum();

    $per_page = 36;

    // These are the tabs which are shown on the page,
    $tabs              = array();
    $tabs['dashboard'] = __( 'Search' );
    if ( 'search' === $tab ) {
      $tabs['search'] = __( 'Search Results' );
    }
    $tabs['upload']   = __( 'Upload' );
    $tabs['featured'] = _x( 'Featured', 'themes' );
    //$tabs['popular']  = _x( 'Popular', 'themes' );
    $tabs['new']     = _x( 'Latest', 'themes' );
    $tabs['updated'] = _x( 'Recently Updated', 'themes' );

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

    
/** This filter is documented in wp-admin/theme-install.php */
    $tabs = apply_filters( 'install_themes_tabs', $tabs );

    
/**
 * Filters tabs not associated with a menu item on the Install Themes screen.
 *
 * @since 2.8.0
 *
 * @param string[] $nonmenu_tabs The tabs that don't have a menu item on
 *                               the Install Themes screen.
 */
    $nonmenu_tabs = apply_filters( 'install_themes_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 );
    }

    $args = array(
      'page'     => $paged,
      'per_page' => $per_page,
      'fields'   => $theme_field_defaults,
    );

    switch ( $tab ) {
      case 'search':
        $type = isset( $_REQUEST['type'] ) ? wp_unslash( $_REQUEST['type'] ) : 'term';
        switch ( $type ) {
          case 'tag':
            $args['tag'] = array_map( 'sanitize_key', $search_terms );
            break;
          case 'term':
            $args['search'] = $search_string;
            break;
          case 'author':
            $args['author'] = $search_string;
            break;
        }

        if ( ! empty( $this->features ) ) {
          $args['tag']      = $this->features;
          $_REQUEST['s']    = implode( ',', $this->features );
          $_REQUEST['type'] = 'tag';
        }

        add_action( 'install_themes_table_header', 'install_theme_search_form',  < 10, 0 );
        break;

      case 'featured':
        // case 'popular':
      case 'new':
      case 'updated':
        $args['browse'] = $tab;
        break;

      default:
        $args = false;
        break;
    }

    
/**
 * Filters API request arguments for each Install Themes screen tab.
 *
 * The dynamic portion of the hook name, `$tab`, refers to the theme install
 * tab.
 

 View on GitHub View on Trac