包含类别和子类别的搜索表单

时间:2011-04-08 作者:Reddy \'Rk\'

如何创建包含类别和子类别的WP搜索表单,如图所示,搜索表单(用于搜索标题书=标题帖子)包含关键字条件、所有选定类别和子类别,其中,子类别(CD、PDF、EPub,…)
我四处看了一周,但没有成功,
请帮帮我…=>For My Client blog for CMS Ebook

I Have modified my form like This :

<?php $media = array(
 \'hierarchical\'       => 1,
 \'parent\'             => get_cat_id(\'Media\'),
 \'show_option_none\'   => (\'All Media\'),
 \'hide_empty\'   => 0  ); 
?>

<form method="get" id="searchform" action="<?php bloginfo(\'url\'); ?>/">
  <div>
    <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
    <?php wp_dropdown_categories(\'show_option_none=All Category\'); ?>
    <?php wp_dropdown_categories($media); ?>
    <input type="submit" id="searchsubmit" value="search" />
  </div>
</form>

How to Create Function or modified form again ? Without Plugin...
对于详细的回答,我非常感谢!!!

1 个回复
SO网友:Bainternet

首先,您必须提供下拉列表名称,以便:

<?php $media = array(
 \'name\'               => \'subcat\',
 \'hierarchical\'       => 1,
 \'parent\'             => get_cat_id(\'Media\'),
 \'show_option_none\'   => (\'All Media\'),
 \'hide_empty\'   => 0  ); 
?>

<form method="get" id="searchform" action="<?php bloginfo(\'url\'); ?>/">
  <div>
    <input type="text" value="<?php the_search_query(); ?>" name="s" id="s" />
    <?php wp_dropdown_categories(\'name=maincat&show_option_none=All Category\'); ?>
    <?php wp_dropdown_categories($media); ?>
    <input type="hidden" id="my_search" name="my_search" value="c_search" />
    <input type="submit" id="searchsubmit" value="search" />
  </div>
</form>
然后创建搜索筛选器

// Define search filter
function search_filter( $query ) {
    // only modify your custom search query.
    if ( $query->is_search &&  $_post[\'my_search\'] == "c_search") {
        $args = array(
                \'relation\' => \'AND\',
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'id\',
                \'terms\' => array( $_post[\'maincat\']),
                \'operator\' => \'IN\'
            ),
            array(
                \'taxonomy\' => \'category\',
                \'field\' => \'id\',
                \'terms\' => array( $_post[\'subcat\']),
                \'operator\' => \'IN\'
            )
        );
        $query->set( \'tax_query\', $args);
    }
    return $query;
}

// The hook needed to search_filter
add_filter( \'the_search_query\',\'search_filter\');

结束

相关推荐

posts and cms and posts again

我正在建立一个可湿性粉剂网站作为一个CMS,将出售CD。我在一个我称之为录音的页面上设置了单独的标题,并有许多类别组成了光盘集。不过,我不确定这是否是将网站设置为CMS的最佳方式。此外,我想在网站的“关于我们”部分下设置另一个博客页面。这是否可能,因为我已经将录制页面分配为帖子页面?或者我可以只在帖子页面上写一个博客条目,然后只调用那些帖子吗?除了使用POST方法之外,还有没有更好的方法来创建“录音”数据库?