我有一个名为“公司”的自定义帖子类型和屏幕右上角的基本搜索。不幸的是,在提交基本搜索时,搜索结果会填充公司而不是实际页面,例如Resources或Tech Advisory Group。 http://labbureau.wpengine.com/
我修改了我的自定义查询以仅搜索页面并忽略所有公司帖子,但基本搜索仍然显示公司而不是页面的实际标题。可以做些什么?
以下是我的自定义查询:
$keyword = $_GET['s'];
$wp_query = new WP_Query(
array(
's' => $keyword,
'post_type' => 'page',
'tax_query' => array(
'taxonomy' => 'company',
'operator' => 'NOT IN'
),
'orderby' => 'title'
)
);
开始循环:
<?php if ( $wp_query->have_posts() ) while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
答案 0 :(得分:0)
尝试使用您要搜索的帖子类型在搜索表单中添加隐藏的输入:
<input type="hidden" name="post_type" value="post_type_name" />
答案 1 :(得分:0)
在你的主题上,functions.php使用这段代码
function searchfilter($query) {
if ($query->is_search && !is_admin() ) {
$query->set('post_type',array('page'));
}
return $query;
}
add_filter('pre_get_posts','searchfilter');
答案 2 :(得分:0)
这是一个简单的解决方案。转到媒体库并搜索文件。如果搜索标题与图像标题相同并且没有显示结果,则表明您的查询正在运行猖獗。很可能这可以在functions.php文件中找到,并表示为如下所示的过滤器:
function search_filter( $query ) {
if ( $query->is_search ) {
$query->set( 'post_type', array('company') );
}
return $query;
}
add_filter('pre_get_posts','search_filter');
function.php文件是山丘之王,将接管您网站上的所有其他自定义帖子类型。如果您有多个搜索,则无论您是否在模板中创建新的WordPress查询,它们都将搜索公司的帖子类型。你需要注释掉add_filter。在此示例中,您需要为两个不同的搜索循环创建条件语句。您的一个搜索模板(HTML)需要有一个隐藏的输入,您可以通过其中一个条件点检索该输入以使用新查询引用新模板。不要尝试使用自定义帖子类型的条件语句,因为如果需要更改,则必须在多个位置更改此条件语句。以下是此条件的示例:
if(isset($_GET['search_simple']) && $_GET['search_simple'] = 'search' && !isset($_GET['hdr-search']))
{
get_template_part('loop-search');
}
else if(isset($_GET['search_simple']) && $_GET['search_simple'] = 'search' && isset($_GET['hdr-search']))
{
get_template_part('loop-search2');
}
else
{
get_template_part('loop-search-blog');
}