Как сделать расширенный поиск на Вордпресс?

Нужно сделать поиск состоящий из 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 ))
          ?>

Ответы (0 шт):