在 WooCommerce 管理产品列表中为 "number of items per page" 设置默认值
Set a default value for "number of items per page" in WooCommerce admin product list
WordPress 允许每个用户在管理产品页面中设置自己的“每页项目数”值 /wp-admin/edit.php?post_type=product
。
我正在寻找一个代码来为所有用户设置“每页项目数”的相同值,无论您的用户角色如何。
有办法吗?类似于:
add_action('admin_init', 'set_value_for_all_users');
function set_value_for_all_users() {
// set $Number_of_items_per_page for all users = 20
$Number_of_items_per_page = 20;
}
在 wp_user_meta
table 中有一个设置此限制的元键 edit_product_per_page
。默认 20.
但是,要为管理产品列表编辑此设置,您可以使用 get_items_per_page()
WordPress 功能
中的过滤器挂钩
WP_List_Table::get_items_per_page() - 获取要在单个页面上显示的项目数。
protected function get_items_per_page( $option, $default = 20 ) {
$per_page = (int) get_user_option( $option );
if ( empty( $per_page ) || $per_page < 1 ) {
$per_page = $default;
}
/**
* Filters the number of items to be displayed on each page of the list table.
*
* The dynamic hook name, `$option`, refers to the `per_page` option depending
* on the type of list table in use. Possible filter names include:
*
* - `edit_{$post_type}_per_page`
*
* @since 2.9.0
*
* @param int $per_page Number of items to be displayed. Default 20.
*/
return (int) apply_filters( "{$option}", $per_page );
}
因此,为了回答您的问题,请将 {$post_type}
更改为 product
然后你得到:
function filter_edit_product_per_page ( $per_page ) {
// The number of items to be displayed on product page of the list table
$per_page = 50;
return $per_page;
}
add_filter( 'edit_product_per_page', 'filter_edit_product_per_page', 10, 1 );
WordPress 允许每个用户在管理产品页面中设置自己的“每页项目数”值 /wp-admin/edit.php?post_type=product
。
我正在寻找一个代码来为所有用户设置“每页项目数”的相同值,无论您的用户角色如何。
有办法吗?类似于:
add_action('admin_init', 'set_value_for_all_users');
function set_value_for_all_users() {
// set $Number_of_items_per_page for all users = 20
$Number_of_items_per_page = 20;
}
在 wp_user_meta
table 中有一个设置此限制的元键 edit_product_per_page
。默认 20.
但是,要为管理产品列表编辑此设置,您可以使用 get_items_per_page()
WordPress 功能
WP_List_Table::get_items_per_page() - 获取要在单个页面上显示的项目数。
protected function get_items_per_page( $option, $default = 20 ) {
$per_page = (int) get_user_option( $option );
if ( empty( $per_page ) || $per_page < 1 ) {
$per_page = $default;
}
/**
* Filters the number of items to be displayed on each page of the list table.
*
* The dynamic hook name, `$option`, refers to the `per_page` option depending
* on the type of list table in use. Possible filter names include:
*
* - `edit_{$post_type}_per_page`
*
* @since 2.9.0
*
* @param int $per_page Number of items to be displayed. Default 20.
*/
return (int) apply_filters( "{$option}", $per_page );
}
因此,为了回答您的问题,请将 {$post_type}
更改为 product
然后你得到:
function filter_edit_product_per_page ( $per_page ) {
// The number of items to be displayed on product page of the list table
$per_page = 50;
return $per_page;
}
add_filter( 'edit_product_per_page', 'filter_edit_product_per_page', 10, 1 );