it-swarm.com.de

Suchformular mit Kategorie und Unterkategorie

So erstellen Sie ein WP Suchformular mit Kategorie und Unterkategorie
zur Veranschaulichung ein Suchformular (für Suchtitel Buch = Titelbeitrag)
Unter der Bedingung Nach Schlüsselwort, Nach allen Kategorien und Unterkategorien ausgewählt
Wo, Unterkategorie (CD, PDF, EPub, ...)
Ich schaue mich eine Woche lang um, aber erfolglos,
Bitte helfen Sie mir ... => Für meinen Kundenblog für CMS Ebook

Ich habe mein Formular folgendermaßen geändert:

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


Wie erstelle ich eine Funktion oder eine geänderte Form erneut? Ohne Plugin ...
Für eine ausführliche Antwort bin ich sehr dankbar !!!

2
Reddy 'Rk'

Zuerst müssen Sie Ihre Dropdown-Namen so angeben:

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

Dann erstelle dir einen Suchfilter

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