如果是默认的WordPress搜索或自定义搜索表单,如果仅匹配帖子标题,类别和标签中的搜索文本。
答案 0 :(得分:0)
搜索表单应该是这样的。
<form class="search" action="<?php echo home_url( '/' ); ?>">
<input type="search" name="s" placeholder="Search…">
<input type="submit" value="Search">
<input type="hidden" name="post_type" value="kb_article">
</form>
我们将使用{template} - {post_type} .php的WordPress文件名约定命名我们的自定义搜索结果模板。在我们的例子中,这将导致search-kb_article.php。我们可以检查是否在URL字符串中设置了post_type = kb_article,如果是,则使用get_template_part加载它,但让我们更进一步。我们将检查是否在URL字符串中设置了post_type,如果是,还要使用{template} - {post_type} .php命名模式检查该帖子类型是否存在自定义搜索模板。如果是,我们将加载它。如果没有,我们将继续使用默认搜索模板。
<?php
// store the post type from the URL string
$post_type = $_GET['post_type'];
// check to see if there was a post type in the
// URL string and if a results template for that
// post type actually exists
if ( isset( $post_type ) && locate_template( 'search-' . $post_type . '.php' ) ) {
// if so, load that template
get_template_part( 'search', $post_type );
// and then exit out
exit;
}
?>
答案 1 :(得分:0)
使用以下查询可以获得解决方案,
$args = array(
'post_type' => 'post',
's' => $keyword,
'cat' => $catSearchID,
'tag' => $tag-slug,
'posts_per_page' => -1,
'location' => $post_location_search ,
);
$wp_query = new WP_Query($args);