php - 在 WooCommerce 管理产品列表中为“每页的项目数”设置默认值
问题描述
WordPress 允许每个用户在 Admin Products Page 中为“每页的项目数”设置自己的值/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
表中有一个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 );
推荐阅读
- angular - Yeoman 生成器的 Office 插件 Angular 应用程序:组件必须具有模板或 templateUrl [使用 Webpack],即使它已声明
- python - 如何计算法语字符?
- sql-server - 使用 SSIS 从外部系统将深层数据结构传递给 ABAP SOAP 提供程序
- javascript - 管理表中实例过多的类Django
- amazon-web-services - AWS Cloudformation 资源之间的循环依赖
- python - 当每个函数立即终止时,为什么这里会出现 RecussionError?
- reactjs - 表单值未在上下文 api React 中更新
- go - 上传签名的 URL 永远不会收到响应/卡住
- java - 如何在 Android Studio 中将文本设置为对应的图像
- java - 错误:操作总是访问存储库。不建议在没有交易的情况下这样做