2010-11-01 04:56:27 -04:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Helper functions for displaying a list of items in an ajaxified HTML table.
|
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
* @subpackage List_Table
|
|
|
|
* @since 3.1.0
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2018-05-07 13:20:22 -04:00
|
|
|
* Fetches an instance of a WP_List_Table class.
|
2010-11-01 04:56:27 -04:00
|
|
|
*
|
|
|
|
* @since 3.1.0
|
|
|
|
*
|
2015-05-28 17:41:30 -04:00
|
|
|
* @global string $hook_suffix
|
|
|
|
*
|
Code Modernization: Rename parameters that use reserved keywords in `wp-admin/includes/list-table.php`.
While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names.
This commit renames the `$class` parameter to `$class_name` in `_get_list_table()`.
Follow-up to [52946], [52996], [52997], [52998], [53003], [53014], [53029], [53039], [53116], [53117], [53137], [53174], [53184].
Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #55327.
Built from https://develop.svn.wordpress.org/trunk@53185
git-svn-id: http://core.svn.wordpress.org/trunk@52774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-15 06:52:11 -04:00
|
|
|
* @param string $class_name The type of the list table, which is the class name.
|
|
|
|
* @param array $args Optional. Arguments to pass to the class. Accepts 'screen'.
|
2021-01-03 17:04:04 -05:00
|
|
|
* @return WP_List_Table|false List table object on success, false if the class does not exist.
|
2010-11-01 04:56:27 -04:00
|
|
|
*/
|
Code Modernization: Rename parameters that use reserved keywords in `wp-admin/includes/list-table.php`.
While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names.
This commit renames the `$class` parameter to `$class_name` in `_get_list_table()`.
Follow-up to [52946], [52996], [52997], [52998], [53003], [53014], [53029], [53039], [53116], [53117], [53137], [53174], [53184].
Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #55327.
Built from https://develop.svn.wordpress.org/trunk@53185
git-svn-id: http://core.svn.wordpress.org/trunk@52774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-15 06:52:11 -04:00
|
|
|
function _get_list_table( $class_name, $args = array() ) {
|
2010-11-01 04:56:27 -04:00
|
|
|
$core_classes = array(
|
2020-01-17 19:54:04 -05:00
|
|
|
// Site Admin.
|
2019-05-26 22:40:53 -04:00
|
|
|
'WP_Posts_List_Table' => 'posts',
|
|
|
|
'WP_Media_List_Table' => 'media',
|
|
|
|
'WP_Terms_List_Table' => 'terms',
|
|
|
|
'WP_Users_List_Table' => 'users',
|
|
|
|
'WP_Comments_List_Table' => 'comments',
|
|
|
|
'WP_Post_Comments_List_Table' => array( 'comments', 'post-comments' ),
|
|
|
|
'WP_Links_List_Table' => 'links',
|
|
|
|
'WP_Plugin_Install_List_Table' => 'plugin-install',
|
|
|
|
'WP_Themes_List_Table' => 'themes',
|
|
|
|
'WP_Theme_Install_List_Table' => array( 'themes', 'theme-install' ),
|
|
|
|
'WP_Plugins_List_Table' => 'plugins',
|
REST API: Introduce Application Passwords for API authentication.
In WordPress 4.4 the REST API was first introduced. A few releases later in WordPress 4.7, the Content API endpoints were added, paving the way for Gutenberg and countless in-site experiences. In the intervening years, numerous plugins have built on top of the REST API. Many developers shared a common frustration, the lack of external authentication to the REST API.
This commit introduces Application Passwords to allow users to connect to external applications to their WordPress website. Users can generate individual passwords for each application, allowing for easy revocation and activity monitoring. An authorization flow is introduced to make the connection flow simple for users and application developers.
Application Passwords uses Basic Authentication, and by default is only available over an SSL connection.
Props georgestephanis, kasparsd, timothyblynjacobs, afercia, akkspro, andraganescu, arippberger, aristath, austyfrosty, ayesh, batmoo, bradyvercher, brianhenryie, helen, ipstenu, jeffmatson, jeffpaul, joostdevalk, joshlevinson, kadamwhite, kjbenk, koke, michael-arestad, Otto42, pekz0r, salzano, spacedmonkey, valendesigns.
Fixes #42790.
Built from https://develop.svn.wordpress.org/trunk@49109
git-svn-id: http://core.svn.wordpress.org/trunk@48871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-10-08 18:14:06 -04:00
|
|
|
'WP_Application_Passwords_List_Table' => 'application-passwords',
|
2019-05-26 16:50:53 -04:00
|
|
|
|
2020-01-17 19:54:04 -05:00
|
|
|
// Network Admin.
|
2019-05-26 22:40:53 -04:00
|
|
|
'WP_MS_Sites_List_Table' => 'ms-sites',
|
|
|
|
'WP_MS_Users_List_Table' => 'ms-users',
|
|
|
|
'WP_MS_Themes_List_Table' => 'ms-themes',
|
2019-05-26 16:50:53 -04:00
|
|
|
|
2020-01-17 19:54:04 -05:00
|
|
|
// Privacy requests tables.
|
2019-05-26 16:50:53 -04:00
|
|
|
'WP_Privacy_Data_Export_Requests_List_Table' => 'privacy-data-export-requests',
|
|
|
|
'WP_Privacy_Data_Removal_Requests_List_Table' => 'privacy-data-removal-requests',
|
2010-11-01 04:56:27 -04:00
|
|
|
);
|
|
|
|
|
Code Modernization: Rename parameters that use reserved keywords in `wp-admin/includes/list-table.php`.
While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names.
This commit renames the `$class` parameter to `$class_name` in `_get_list_table()`.
Follow-up to [52946], [52996], [52997], [52998], [53003], [53014], [53029], [53039], [53116], [53117], [53137], [53174], [53184].
Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #55327.
Built from https://develop.svn.wordpress.org/trunk@53185
git-svn-id: http://core.svn.wordpress.org/trunk@52774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-15 06:52:11 -04:00
|
|
|
if ( isset( $core_classes[ $class_name ] ) ) {
|
|
|
|
foreach ( (array) $core_classes[ $class_name ] as $required ) {
|
2020-02-06 01:33:11 -05:00
|
|
|
require_once ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php';
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2016-08-31 12:31:29 -04:00
|
|
|
|
2017-11-30 18:11:00 -05:00
|
|
|
if ( isset( $args['screen'] ) ) {
|
2012-09-19 08:43:31 -04:00
|
|
|
$args['screen'] = convert_to_screen( $args['screen'] );
|
2017-11-30 18:11:00 -05:00
|
|
|
} elseif ( isset( $GLOBALS['hook_suffix'] ) ) {
|
2012-09-19 08:43:31 -04:00
|
|
|
$args['screen'] = get_current_screen();
|
2017-11-30 18:11:00 -05:00
|
|
|
} else {
|
2012-11-25 22:39:29 -05:00
|
|
|
$args['screen'] = null;
|
2017-11-30 18:11:00 -05:00
|
|
|
}
|
2012-09-19 08:43:31 -04:00
|
|
|
|
Administration: Remove private delegation from list tables.
Remove the private delegation from the following classes and function:
* `WP_List_Table`
* `WP_Application_Passwords_List_Table`
* `WP_Comments_List_Table`
* `WP_Links_List_Table`
* `WP_Media_List_Table`
* `WP_MS_Sites_List_Table`
* `WP_MS_Themes_List_Table`
* `WP_MS_Users_List_Table`
* `WP_Plugin_Install_List_Table`
* `WP_Plugins_List_Table`
* `WP_Post_Comments_List_Table`
* `WP_Posts_List_Table`
* `WP_Terms_List_Table`
* `WP_Theme_Install_List_Table`
* `WP_Themes_List_Table`
* `WP_Users_List_Table`
* `_get_list_table()`
This change is to reflect the reality that list tables are very, very, very widely used by extenders and backward compatibility therefore needs to be maintained.
Introduces the filter `wp_list_table_class_name` within `_get_list_table()` to allow extenders to modify the list table returned for custom screens.
Props audrasjb, birgire, costdev, desrosj, faison, johnbillion, jrbeilke, kurtpayne, milana_cap, miqrogroove, nacin, peterwilsoncc, scribu, sergeybiryukov, sirzooro, westonruter, wonderboymusic.
Fixes #18449.
Built from https://develop.svn.wordpress.org/trunk@54378
git-svn-id: http://core.svn.wordpress.org/trunk@53937 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-10-03 23:47:15 -04:00
|
|
|
/**
|
|
|
|
* Filters the list table class to instantiate.
|
|
|
|
*
|
|
|
|
* @since 6.1.0
|
|
|
|
*
|
|
|
|
* @param string $class_name The list table class to use.
|
|
|
|
* @param array $args An array containing _get_list_table() arguments.
|
|
|
|
*/
|
|
|
|
$custom_class_name = apply_filters( 'wp_list_table_class_name', $class_name, $args );
|
|
|
|
|
|
|
|
if ( is_string( $custom_class_name ) && class_exists( $custom_class_name ) ) {
|
|
|
|
$class_name = $custom_class_name;
|
|
|
|
}
|
|
|
|
|
Code Modernization: Rename parameters that use reserved keywords in `wp-admin/includes/list-table.php`.
While using reserved PHP keywords as parameter name labels is allowed, in the context of function calls using named parameters in PHP 8.0+, this will easily lead to confusion. To avoid that, it is recommended not to use reserved keywords as function parameter names.
This commit renames the `$class` parameter to `$class_name` in `_get_list_table()`.
Follow-up to [52946], [52996], [52997], [52998], [53003], [53014], [53029], [53039], [53116], [53117], [53137], [53174], [53184].
Props jrf, aristath, poena, justinahinon, SergeyBiryukov.
See #55327.
Built from https://develop.svn.wordpress.org/trunk@53185
git-svn-id: http://core.svn.wordpress.org/trunk@52774 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-04-15 06:52:11 -04:00
|
|
|
return new $class_name( $args );
|
2010-11-01 04:56:27 -04:00
|
|
|
}
|
2010-11-01 05:19:50 -04:00
|
|
|
|
2010-11-01 04:56:27 -04:00
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
2011-01-13 18:19:51 -05:00
|
|
|
/**
|
|
|
|
* Register column headers for a particular screen.
|
|
|
|
*
|
2019-10-26 17:09:04 -04:00
|
|
|
* @see get_column_headers(), print_column_headers(), get_hidden_columns()
|
|
|
|
*
|
2011-01-13 18:19:51 -05:00
|
|
|
* @since 2.7.0
|
|
|
|
*
|
2020-11-14 11:54:08 -05:00
|
|
|
* @param string $screen The handle for the screen to register column headers for. This is
|
|
|
|
* usually the hook name returned by the `add_*_page()` functions.
|
|
|
|
* @param string[] $columns An array of columns with column IDs as the keys and translated
|
|
|
|
* column names as the values.
|
2011-01-13 18:19:51 -05:00
|
|
|
*/
|
2017-11-30 18:11:00 -05:00
|
|
|
function register_column_headers( $screen, $columns ) {
|
2016-08-30 16:07:29 -04:00
|
|
|
new _WP_List_Table_Compat( $screen, $columns );
|
2011-01-13 18:19:51 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Prints column headers for a particular screen.
|
|
|
|
*
|
|
|
|
* @since 2.7.0
|
2016-01-08 20:45:26 -05:00
|
|
|
*
|
|
|
|
* @param string|WP_Screen $screen The screen hook name or screen object.
|
2020-06-20 08:02:12 -04:00
|
|
|
* @param bool $with_id Whether to set the ID attribute or not.
|
2011-01-13 18:19:51 -05:00
|
|
|
*/
|
2016-01-08 20:45:26 -05:00
|
|
|
function print_column_headers( $screen, $with_id = true ) {
|
2017-11-30 18:11:00 -05:00
|
|
|
$wp_list_table = new _WP_List_Table_Compat( $screen );
|
2011-01-13 18:19:51 -05:00
|
|
|
|
2016-01-08 20:45:26 -05:00
|
|
|
$wp_list_table->print_column_headers( $with_id );
|
2011-01-13 18:19:51 -05:00
|
|
|
}
|