如何在WordPress中搜索特定的分类

时间:2011-11-13 作者:Sosthenes Kwame Boame

我试图在特定的分类法中搜索帖子,但每次搜索时,我都会从所有其他页面获得结果,而不是Wordpress在分类法中选定的类别中进行搜索。

我将我的分类命名为:“publication\\u categories”。它包含我命名为“publication”的自定义帖子类型的所有类别。这是我用于自定义搜索的代码。php:

<form method="get" id="searchform" action="<?php bloginfo(\'url\'); ?>/">
<div class="alignleft">
<select name="taxonomy">
<option value="0">Select...</option>
<?php
$theterms = get_terms(\'publication_categories\', \'orderby=name\');
foreach ($theterms AS $term) :
    echo "<option value=\'".$term->slug."\'".($_POST[\'publication_categories\'] == $term->slug ? \' selected="selected"\' : \'\').">".$term->name."</option>\\n";
endforeach;
?>
</select>
</div>
<input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" />
<input type="submit" id="searchbutton" value="Search" class="btn" />
</form>

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

我发现您的代码有一些问题。

表单中缺少post\\U类型字段因此您的表单应该如下所示:

<form method="get" id="searchform" action="<?php bloginfo(\'url\'); ?>/">
    <div class="alignleft">
        <select name="publication_categories">
            <option value="0">Select...</option>
            <?php
            $theterms = get_terms(\'publication_categories\', \'orderby=name\');
            foreach ($theterms AS $term) :
                echo "<option value=\'".$term->slug."\'".($_GET[\'publication_categories\'] == $term->slug ? \' selected="selected"\' : \'\').">".$term->name."</option>\\n";
            endforeach;
            ?>
        </select>
    </div>
    <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" class="searchinput" />
    <input type="hidden" name="post_type" value="publication" />
    <input type="submit" id="searchbutton" value="Search" class="btn" />
</form>

SO网友:Carpy

这可能会添加到您的表单中吗?

<input type="hidden" name="post_type" value="publication" />

结束

相关推荐

Loop problem - Taxonomy

我想我的分类页面上的循环有问题。在我需要permalink的代码的任何部分(特别是侧栏上),它总是返回分类循环第一项的链接,但正确的是当前页面的链接。这是我的分类页面代码:<?php get_header(); ?> <div id=\"header_titulo\"> <div class=\"container\"> <?php $term_global = get_term_by(\'slug\', get_q