删除POSTS_ORDERBY过滤器,然后将其重新添加到

时间:2015-05-26 作者:benc

我正在使用

  remove_all_filters(\'posts_orderby\');
删除查询的顺序。对于页面下方的查询,我需要返回过滤器。

如何将其添加回?

1 个回复
SO网友:s_ha_dum

要重新添加已移除的过滤器,首先必须知道最初连接的是什么。你可以在global $wp_filter 阵列,但这应该以少得多的工作量完成相同的操作:

function remove_query_order($order) {
  remove_filter(\'posts_orderby\',\'remove_query_order\',PHP_INT_MAX);
  return \'\';
}
add_filter(\'posts_orderby\',\'remove_query_order\',PHP_INT_MAX);
在希望其生效的查询之前添加过滤器,它将删除自身。

结束

相关推荐

Multiple category filters

我正在为客户端开发一个事件插件,我需要几个“类别过滤器”。现在我有了一个post类型的参数,我注册了该post类型和分类法,并创建了另一个分类法。在我的category metabox中,我只有第一个分类显示为我可以选择的类别。如果我在我的菜单上创建另一个帖子类型,它会像一个不同的插件菜单一样显示,其中子菜单是我的帖子类型所在的位置,我只想有一个不同的“类别过滤器”,我可以将类别添加到其中,然后在同一个插件中显示为类别元框。所以现在我有一个“Place”的帖子类型和分类法,它显示在我的插件中,通常是一个类