搜索页面上显示了哪些内容类型?

时间:2012-04-03 作者:porton

我创建了几种自定义内容类型。

我的问题是:在搜索中显示不同内容类型的内容怎么样。php?搜索中显示了不同的帖子类型。php?如果没有,如何显示?我应该如何配置搜索代码以显示我要显示的这些内容类型?

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

默认情况下,通常是posts和pages、 但是,您可以通过多种方式修改它

URLs

example.com/?s=test 将在帖子和页面中搜索术语测试,但是,example.com/?s=test&post_type=product 将搜索该类型的帖子product 用于学期测试。

以同样的方式追加?s=文章类型存档URL的术语将在该存档中搜索该术语,就像将其附加到其他各种URL一样

Query filters

您可以修改以下代码自动进行岗位类型调整,无需进行上述更改:

function filter_search($query) {
    if ($query->is_search) {
        $query->set(\'post_type\', array(\'post\', \'page\', \'customposttype\'));
    };
    return $query;
};
add_filter(\'pre_get_posts\', \'filter_search\');
有些人建议您在搜索模板中的帖子循环上方添加query\\u posts行。我建议不要这样做,因为这意味着额外的不必要的数据库查询,它会覆盖任何试图添加功能或改进搜索查询的过滤器和挂钩

Specific individual Search for individual custom post types

请参见此处:

http://wpsnipp.com/index.php/template/create-multiple-search-templates-for-custom-post-types/

SO网友:Aris Blevins

这有两个部分-注册帖子类型时,需要确保它们未从搜索中排除-exclude\\u from\\u search=true。

然后需要将post\\u类型添加到搜索循环中。要做到这一点,您可以通过将其放置在函数中,将过滤器添加到搜索查询中。php:

function filter_search($query) {
    if ($query->is_search) {
    $query->set(\'post_type\', array(\'post\', \'YOUR POST TYPE\'));
    };
    return $query;
};
add_filter(\'pre_get_posts\', \'filter_search\');
此搜索将只返回帖子和您的帖子类型,不返回页面或其他内容。

结束

相关推荐

Wordpress search results

我安装了作业管理器,并设法过滤搜索以仅显示作业(即post\\u type=jobman\\u Job),它工作正常。但是,当显示搜索结果时,它只显示标题,而不像正常搜索那样提取简短描述(“摘录”)。有人能告诉我一些如何让搜索显示工作内容的指导吗?