搜索结果页不起作用(_S)

时间:2013-07-02 作者:xarai

我在侧边栏中有一个额外的子菜单,其中包含以下代码:

if(is_404() || is_search()) :
    echo \'should be empty\';
else :
    if($post->post_parent == \'68\')
        $children = wp_list_pages("title_li=&child_of=".$post->post_parent."&echo=0");
    else
        $children = wp_list_pages("title_li=&child_of=".$post->ID."&echo=0");
    if ($children) { 
        ?><ul><?php echo $children; ?></ul><?php 
    }
endif;
我对第一行有问题。在404页面和搜索页面上,如果你搜索的是不存在的东西,它工作得很好,但是当你搜索的是确实存在的东西时,侧边栏中会弹出子菜单。此代码有什么问题?

1 个回复
SO网友:s_ha_dum

如果你想要的是else 要显示在404页和搜索页上,但仅当搜索未返回结果时,您需要的条件是。。。

if(is_404() || (is_search() && 0 === $wp_query->found_posts)) {
  // ...
} else {
  // ...
}
这与您的代码之间的区别在于,我添加了一个额外的检查,以查看搜索查询是否有任何结果。周围的括号is_search() && 0 === $wp_query->found_posts) 使|| 对整个子句进行操作,就像数学中的括号一样,真的。

如果你不想else 在任何搜索或404页上,您都需要。。。

if(!is_404() || !is_search()) {
  // ...
} else {
  // ...
}
。。。但这就是你所拥有的,所以我不确定你想要实现什么。

结束

相关推荐

Wordpress search exact match

我设置了一些搜索过滤器,发现了一些不应该出现在搜索结果中的帖子。进一步研究后,我发现这些帖子与关键字的“部分”匹配。例如,搜索“car”可以将帖子与单词中的“cared”、“carbon”、“scar”以及其他与car匹配的内容进行匹配。我真的希望这只拉柱匹配\'车\'完全。默认情况下wordpress就是这样工作的吗?我已经试过了\'exact\' => true WP\\u Query上的参数,但这使得在使用类别过滤器等时搜索非常具体。如何设置它以使其与关键字完全匹配?