自定义帖子类型未显示在搜索结果中

时间:2019-01-21 作者:Michiel Standaert

我有一个自定义的帖子类型,我想可以搜索(我使用relevanssi搜索插件)。我有以下代码来添加自定义帖子类型:

add_action(\'init\', \'eyewebz_create_post_types\');
function eyewebz_create_post_types() {
    register_post_type(\'project\', 
        array(  \'taxonomies\'            => array(\'category\'),
                \'labels\'                => $labels,
                \'has_archive\'           => true,
                \'show_in_rest\'          => true,
                \'hierarchical\'          => true,
                \'public\'                => true,
                \'publicly_queryable\'    => true,
                \'supports\'              => array(\'title\', \'editor\', \'post-formats\', \'page-attributes\', \'thumbnail\', \'excerpt\'),
                \'menu_icon\'             => \'dashicons-index-card\'
    ));

}
这种帖子类型需要显示在搜索结果中,但我似乎无法做到这一点。我已尝试更改如下所示的pre\\u get\\u帖子,但仍然没有得到所需的结果。

add_filter(\'pre_get_posts\', \'extend_search_cpt\');
function extend_search_cpt($query) 
{
    if($query->is_search) {
        $query->set(\'post_type\', array(\'post\', \'page\', \'project\'));
    }

    return $query; 
}
如果在设置post\\u类型后var\\u转储查询,我可以看到它包含在查询中,但在搜索结果中仍然没有任何自定义post类型。(如果之前我var\\u转储了查询,则查询中没有post\\u类型的标志)。

有什么想法吗?可能是什么问题?

1 个回复
SO网友:Er Deepak Prabhakar

请在register post type函数中将exclude\\u from\\u search添加为false


add_action(\'init\', \'eyewebz_create_post_types\');
function eyewebz_create_post_types() {
    register_post_type(\'project\', 
        array(  \'taxonomies\'            => array(\'category\'),
                \'labels\'                => $labels,
                \'has_archive\'           => true,
                \'show_in_rest\'          => true,
                \'hierarchical\'          => true,
                \'public\'                => true,
                \'publicly_queryable\'    => true,
                \'supports\'              => array(\'title\', \'editor\', \'post-formats\', 
                \'page-attributes\', \'thumbnail\', \'excerpt\'),
                \'exclude_from_search\' => false,
                \'menu_icon\'             => \'dashicons-index-card\'
    ));

}

相关推荐

nothing happen in search form

我想创建搜索表单,但当我搜索时什么都没有发生,这是代码:索引。php: <div class=\"tech-btm\"> <?php get_search_form();?> </div> 搜索表单:<form role=\"search\" method=\"get\" id=\"searchform\" action=\"<?php echo home_url(\'/\')?>\"> &