需要删除WordPress父选择

时间:2016-11-11 作者:Artem Ankudovich

Hi i have a Wordpress installation with over 35000 pages which are sorted into trees like so ...enter image description here

页面编辑加载非常缓慢或根本无法加载,这是一个持续存在的问题。经过长时间的反复试验和研究,我发现这是由于加载父选择导致的(10K页使其崩溃)

在以前的类似项目中,我通过以下函数禁用了父选择,但它似乎仍在运行一个巨大的查询,导致内存不足

add_filter( \'quick_edit_dropdown_pages_args\', \'limit_parents_wpse_106164\' );
add_filter( \'page_attributes_dropdown_pages_args\', \'limit_parents_wpse_106164\' );

function limit_parents_wpse_106164( $args ) {
  $args[\'child_of\'] = 4009;
  //Id 4009 post dosn\'t exist
  return $args;
 }
有没有一种方法可以将查询从队列中移出,并从页面属性部分中删除父选择?

提前谢谢你。

1 个回复
最合适的回答,由SO网友:bonger 整理而成

根据注释,解决方法是设置post_type 对于筛选器中不是层次结构类型的内容,如wp_dropdown_pages() 用于填充select调用的函数get_pages() 如果post_type 没有层次结构。所以使用一个不存在的post_type 工程:

function limit_parents_wpse_106164( $args ) {
    $args[\'post_type\'] = \'does_not_exist\';
    return $args;
}
请注意,最初的过滤器想法来自@brasofilohere.

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the