web-dev-qa-db-fra.com

Formulaire de recherche avec catégorie et sous-catégorie

Comment créer WP Formulaire de recherche avec catégorie et sous-catégorie
pour illustrer un formulaire de recherche (pour titre de recherche Book = title post)
Avec condition Par mot-clé, Par toutes les catégories et sous-catégories sélectionnées
Où, sous-catégorie (CD, PDF, EPub, ...)
Je regarde autour de moi pendant une semaine mais sans succès,
Aidez-moi, s'il vous plaît ... => Pour le blog My Client for CMS Ebook

J'ai modifié mon formulaire comme ceci:

<?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>


Comment créer à nouveau une fonction ou un formulaire modifié? Sans plugin ...
Pour une réponse détaillée, je vous en suis très reconnaissant !!!

2
Reddy 'Rk'

Vous devez d’abord donner les noms de vos listes déroulantes afin:

<?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>

Puis créez votre filtre de recherche

// 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');
3
Bainternet