home *** CD-ROM | disk | FTP | other *** search
/ HTML Examples / WP.iso / wordpress2 / wp-admin / includes / list-table.php < prev    next >
Encoding:
PHP Script  |  2016-08-31  |  2.6 KB  |  85 lines

  1. <?php
  2. /**
  3.  * Helper functions for displaying a list of items in an ajaxified HTML table.
  4.  *
  5.  * @package WordPress
  6.  * @subpackage List_Table
  7.  * @since 3.1.0
  8.  */
  9.  
  10. /**
  11.  * Fetch an instance of a WP_List_Table class.
  12.  *
  13.  * @access private
  14.  * @since 3.1.0
  15.  *
  16.  * @global string $hook_suffix
  17.  *
  18.  * @param string $class The type of the list table, which is the class name.
  19.  * @param array $args Optional. Arguments to pass to the class. Accepts 'screen'.
  20.  * @return object|bool Object on success, false if the class does not exist.
  21.  */
  22. function _get_list_table( $class, $args = array() ) {
  23.     $core_classes = array(
  24.         //Site Admin
  25.         'WP_Posts_List_Table' => 'posts',
  26.         'WP_Media_List_Table' => 'media',
  27.         'WP_Terms_List_Table' => 'terms',
  28.         'WP_Users_List_Table' => 'users',
  29.         'WP_Comments_List_Table' => 'comments',
  30.         'WP_Post_Comments_List_Table' => array( 'comments', 'post-comments' ),
  31.         'WP_Links_List_Table' => 'links',
  32.         'WP_Plugin_Install_List_Table' => 'plugin-install',
  33.         'WP_Themes_List_Table' => 'themes',
  34.         'WP_Theme_Install_List_Table' => array( 'themes', 'theme-install' ),
  35.         'WP_Plugins_List_Table' => 'plugins',
  36.         // Network Admin
  37.         'WP_MS_Sites_List_Table' => 'ms-sites',
  38.         'WP_MS_Users_List_Table' => 'ms-users',
  39.         'WP_MS_Themes_List_Table' => 'ms-themes',
  40.     );
  41.  
  42.     if ( isset( $core_classes[ $class ] ) ) {
  43.         foreach ( (array) $core_classes[ $class ] as $required )
  44.             require_once( ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php' );
  45.  
  46.         if ( isset( $args['screen'] ) )
  47.             $args['screen'] = convert_to_screen( $args['screen'] );
  48.         elseif ( isset( $GLOBALS['hook_suffix'] ) )
  49.             $args['screen'] = get_current_screen();
  50.         else
  51.             $args['screen'] = null;
  52.  
  53.         return new $class( $args );
  54.     }
  55.  
  56.     return false;
  57. }
  58.  
  59. /**
  60.  * Register column headers for a particular screen.
  61.  *
  62.  * @since 2.7.0
  63.  *
  64.  * @param string $screen The handle for the screen to add help to. This is usually the hook name returned by the add_*_page() functions.
  65.  * @param array $columns An array of columns with column IDs as the keys and translated column names as the values
  66.  * @see get_column_headers(), print_column_headers(), get_hidden_columns()
  67.  */
  68. function register_column_headers($screen, $columns) {
  69.     new _WP_List_Table_Compat( $screen, $columns );
  70. }
  71.  
  72. /**
  73.  * Prints column headers for a particular screen.
  74.  *
  75.  * @since 2.7.0
  76.  *
  77.  * @param string|WP_Screen $screen  The screen hook name or screen object.
  78.  * @param bool             $with_id Whether to set the id attribute or not.
  79.  */
  80. function print_column_headers( $screen, $with_id = true ) {
  81.     $wp_list_table = new _WP_List_Table_Compat($screen);
  82.  
  83.     $wp_list_table->print_column_headers( $with_id );
  84. }
  85.