在我的wordpress博客中,我和其他人一样,发帖和普通页面。
如何从提交wp搜索表单时获得的搜索结果中排除正常页面?
说我有一个帖子和一个页面都包含单词" foo"。
如何获得" foo"的搜索结果?只列出帖子?
答案 0 :(得分:1)
您可以使用pre_get_posts
将主查询更改为仅搜索“帖子”帖子类型。在你的functions.php
(注意:需要PHP 5.3 + )
add_action( 'pre_get_posts', function ( $q ) {
if( !is_admin() && $q->is_main_query() && $q->is_search() ) {
$q->set( 'post_type', 'post' );
}
});
答案 1 :(得分:0)
Pieter Goosen的回答没问题,但将搜索查询结果限制为帖子类型post
。这是另一种修改网页帖子类型exclude_from_search
属性并使其他可能查询的帖子类型保持不变的方法:
add_action( 'init', 'so27342745_exclude_from_search' );
function so27342745_exclude_from_search()
{
global $wp_post_types;
$wp_post_types['page']->exclude_from_search = true;
}