我已经在WP Stackexchange上问了这个问题,但没有得到任何答案。那么让我试试吧。 Wordpress Stackexchange
有没有办法在Wordpress菜单编辑器中删除分页?
我的博客中有200个类别,当你必须点击它来查找所需的类别时,自定义菜单似乎很棘手。
我知道有一个插件可以“删除”PAGES的分页,但我找不到任何可以删除分类的分页。 我试图在Wordpress Admin PHP文件中找到一些东西,甚至是nav-menus.php但是没有运气。
答案 0 :(得分:0)
在阅读完源代码后,我发现编辑菜单部分返回的类别数量在 \ wp-admin \ includes \ nav-menu.php 的第613行硬编码为50
// Paginate browsing for large numbers of objects.
$per_page = 50;
$pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
$offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;
为了覆盖每页50的默认值,您可以将数字设置为“”以指示查询返回所有类别。将以下代码添加到 functions.php 文件中。
add_filter( 'get_terms_args', 'show_all_categories_admin_nav_menu', 10, 2);
function show_all_categories_admin_nav_menu( $args, $taxonomies ) {
if( reset($taxonomies) === 'category' ) {
$args['number'] = '';
}
return $args;
}
如果您将数字设置为空白,即使它显示所有类别,它仍会显示分页。
还有一个名为terms_clauses的过滤器,您可以在其中从查询中删除SQL LIMIT子句,但这似乎对查询没有任何影响。
add_filter('terms_clauses', 'modify_terms_clauses', 10, 3);
function modify_terms_clauses( $clauses, $taxonomies, $args ) {
if( reset($taxonomies) === 'category' ) {
$clauses['limits'] = '';
}
return $clauses;
}