Как сделать расширенный поиск на Вордпресс?
Нужно сделать поиск состоящий из 4х строк. Сейчас поиск работает только по названию. У записей есть мета-поля по которым должен происходить поиск. Как сделать что бы поиск работал по указанным параметрам?
Форма:
<form role="search" name="advanced-search" method="GET" action="<?php echo home_url( '/' ) ?>" id='advanced-search' class="advanced-search__form advanced-search-form">
<div class="advanced-search-form__box">
<p class="advanced-search-form__text">Название</p>
<input data-kioskboard-type="keyboard" data-kioskboard-placement="bottom" data-kioskboard-specialcharacters="false" name="s" type="text" class="js-virtual-keyboard advanced-search-form__input" />
</div>
<div class="advanced-search-form__box">
<p class="advanced-search-form__text">Автор</p>
<input data-kioskboard-type="keyboard" data-kioskboard-placement="bottom" data-kioskboard-specialcharacters="false" name="creator" type="text" class="js-virtual-keyboard advanced-search-form__input" />
</div>
<div class="advanced-search-form__box">
<p class="advanced-search-form__text">Год издания</p>
<input data-kioskboard-type="keyboard" data-kioskboard-placement="bottom" data-kioskboard-specialcharacters="false" value="" name="year" type="text" class="js-virtual-keyboard advanced-search-form__input-mini" id="year" />
</div>
<div class="advanced-search-form__box">
<p class="advanced-search-form__text">Издательство</p>
<input data-kioskboard-type="keyboard" data-kioskboard-placement="bottom" data-kioskboard-specialcharacters="false" name="publisher" type="text" class="js-virtual-keyboard advanced-search-form__input" />
</div>
<div class="advanced-search-form__buttons">
<input value="Найти" id='avanced-search-btn' class="advanced-search-form__btn advanced-search-form__btn--white" type="submit">
</div>
<input type="hidden" value="1" name="sentence" />
<input type="hidden" value="concert" name="post_type" />
</form>
search.php
// if( !empty( $query ) ) :
if (isset($_GET['year'])) {$year = $_GET['year'];}
if (isset($_GET['creator'])) {$creator = $_GET['creator'];}
if (isset($_GET['publisher'])) {$publisher = $_GET['publisher'];}
if (isset($_GET['s'])) {$s = $_GET['s'];}
// echo $publisher, $creator, $year, $s ;
$args = array(
'posts_per_page' => -1,
'post_type' => 'concert',
's' => $s,
'sentence' => 1,
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'publisher',
'value' => $publisher,
'compare' => '=',
),
array(
'key' => 'creator',
'value' => $creator,
'compare' => '=',
),
array(
'key' => 'year',
'value' => $year,
'compare' => '=',
),
),
);
// perform the search
$posts = new WP_Query( $args );
if( ( $posts->have_posts() ) ) :
?>
<header class="page-header">
<h1 class="page-title"><?php printf( __( 'Library Search Results for: %s', 'woothemes' ), $query ); ?></h1>
</header>
<?php /* The loop */ ?>
<ul style="list-style: none">
<?php while ( $posts->have_posts() ): $posts->the_post(); ?>
// some code
<?php endwhile; ?>
</ul>
<?php
wp_reset_postdata();
?>
<?php else: ?>
<h1 class="page-title"><?php printf( __( 'Sorry, no matches found for "' . $query .'"', 'woothemes' ) ); ?></h1>
<?php
endif; // !(empty ( $posts ))
// endif; // !(empty ( $query ))
?>