根据自定义分类从搜索中隐藏自定义帖子类型

时间:2018-02-25 作者:Kendell Daniel

我想隐藏一些自定义帖子类型的帖子。我在想,如果我为自定义帖子类型创建一个带有术语“hidden”的自定义分类法,那么所有选中的帖子都将被隐藏。也许我可以添加一些过滤器到函数文件中?碰巧有人做过这样或类似的事情吗?请告知,提前感谢:)

你好,肯德尔

2 个回复
SO网友:David Sword

register_post_type() 有一个argument 可以设置为指定要搜索的帖子类型,从而排除不需要的帖子类型。这是最简单的方法,只有一行:

\'exclude_from_search\' = true,
除此之外,您还可以通过pre_get_posts 然后修改搜索,指定您关注的帖子类型:

add_filter(\'pre_get_posts\',function ($query) {
    if ($query->is_search && !is_admin() )
        $query->set(\'post_type\',array(\'post\',\'page\'));
    return $query;
});
如果您死心塌地地想使用“隐藏”一词,尽管我不推荐使用它,因为它包含的代码越多,用户出错的可能性就越大,那么您可以这样做:

add_action( \'pre_get_posts\', function ( $query ) {
    global $wp_the_query;
    if($query === $wp_the_query && $query->is_search() && !is_admin()) {
        $tax_query = array(
            array(
                \'taxonomy\' => \'your_custom_tax_name\',
                \'field\' => \'slug\',
                \'terms\' => \'hidden\',
                \'operator\' => \'NOT IN\',
            )
        );
        $query->set( \'tax_query\', $tax_query );
    }
});

SO网友:Kendell Daniel

为了其他人寻找解决方案,我使用了SearchWP 用于排除这些帖子的插件。

结束

相关推荐

making a search.php query

我正在尝试创建一个自定义搜索结果页面。我希望一次有6篇帖子,然后我要添加一个加载更多的按钮,可以加载更多的6篇帖子,以此类推。我希望页面处于引导网格布局中。每行2个立柱(col-md-6)。使用下面的代码,网页甚至不会显示出来。我是否需要向我的函数添加任何内容。php来实现这一点?有人能帮我吗?提前谢谢。<?php get_header(); $the_query = new WP_Query( [ \'posts_per_page\' =>