vladislavignatyev
@vladislavignatyev
Frontend & backend, WEB-dev, WEB master

Как настроить поиск в шаблоне Wordpress?

Всем привет!
Уже который день бьюсь головой об монитор. Помогите разобраться с поиском.
У меня есть собственный шаблон для WP, все натянул все работает как надо, создал custom post type, один из этих пост тайпов называется post_type_products. В нем хранятся записи с метакми. В чем собственно проблема ?
Проблема в том, что мой поиск ищет записи по заголовкам, а мне надо чтобы искал по меткам и выдавал мои превьюшки, которые настроил.

Файл search.php
Код
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
    <?php if(isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
           if($type == 'post_type_products') {?>
               <?php ale_part('postpreview_products'); ?>
           <?php } else { ?>
               /* Format for custom post types that are not "book,"
               or you can use elseif to specify a second post type the
               same way as above. Copy the default format here if you
               only have one custom post type. */
           <?php } ?>
    <?php } else { ?>
              /* Format to display when the post_type parameter
              is not set (i.e. default format) */
<?php } ?>
<?php endwhile; else: ?>
<div class="container">
  <div class="product_title_no">
    <h1>
      Не найдено
    </h1>
</div>
</div>
<?php endif; ?>
Файл funcion.php тут функция фильтрации по типу поста - post_type_products
Код
function searchfilter($query) {
    if ($query->is_search && !is_admin() ) {
        if(isset($_GET['post_type'])) {
            $type = $_GET['post_type'];
                if($type == 'post_type_products') {
                    $query->set('post_type',array('post_type_products'));
                }
        }       
    }
return $query;
}
add_filter('pre_get_posts','searchfilter');
Форма поиска
Код
<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>">
                    <label>
                        <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Введите название', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" />
                        <input type="hidden" name="post_type" value="post_type_products" />
                    </label>
                    <input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" />
                </form>
  • Вопрос задан
  • 173 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix
Java Software Engineer
Должен признаться, что мне не приходилось реализовывать поиск (к слову, на днях планирую)
Вдруг следующие ссылки будут полезны для вас в решении данного вопроса:
https://www.rfmeier.net/include-category-and-post-...
https://www.reddit.com/r/Wordpress/comments/20nhq5...
www.secretsofgeeks.com/2014/09/wordpress-search-ta...
https://wordpress.stackexchange.com/questions/1728...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы