从/博客页面排除自定义帖子类型

时间:2021-10-11 作者:Branko Todorović

自定义帖子类型名称为;项目;。我需要函数中的代码。php

这适用于搜索:

// Exclude custom post type from  WP Search
add_action( \'init\', \'update_my_custom_type\', 99 );
function update_my_custom_type() {
    global $wp_post_types;

    if ( post_type_exists( \'project\' ) ) {
        // exclude from search results
        $wp_post_types[\'project\']->exclude_from_search = true;
    }
}
我找不到/博客页面的解决方案。

1 个回复
SO网友:Tommy Pradana

你可以试试这个

function exclude_some_post_type($query) {
    if ( ! is_admin() && $query->is_main_query() ) {
        if ( $query->is_search || is_home() ) {
            // in search page
            $query->set( \'post_type\', \'post\' );
        }
    }
}
add_action( \'pre_get_posts\', \'exclude_some_post_type\' );
应用于pre_get_posts 钩子将只设置默认的帖子类型(post),并将忽略搜索或博客(主页)中的其他类型。

进一步阅读pre_get_posts hook,请访问:https://developer.wordpress.org/reference/hooks/pre_get_posts/

相关推荐

Exclude Tags by Array

谢谢你的帮助!。我正在尝试显示所有标记,但以标记(“作者:”)开头的标记除外。我已经知道了如何排除单个标记(只需将其键入exclude参数)。我已经知道了如何排除标记数组(创建了一个数组并手动添加了几个值)。但我还没有弄清楚如何基于get\\u term\\u by填充数组(或者这是否是最好的方法)。<div id=\"tagarea\"> <div class=\"contained\"> <h2>Categories</h2><