WordPress изменить результаты поиска - PullRequest
0 голосов
/ 05 октября 2018

У меня проблема с тем, что моя тема WordPress ("Сидней") неправильно отображает результаты поиска.Вместо того, чтобы просто перечислять сообщения, я хочу отображать только продукты WooCommerce.

Они должны быть упорядочены в красивой сетке, как показано на этом рисунке:

this picture.

На данный момент результаты перечислены так:

like this.

Как изменить способ отображения результатов поиска?

Вв тот момент, когда мой search.php выглядит так:

<?php get_header(); ?>

<div id="primary" class="content-area col-md-9">
    <main id="main" class="post-wrap" role="main">

    <?php if ( have_posts() ) : ?>

        <header class="page-header">
            <h3><?php printf( __( 'Search Results for: %s', 'sydney' ), '<span>' . get_search_query() . '</span>' ); ?></h31>
        </h3>
        </header><!-- .page-header -->

        <?php /* Start the Loop */ ?>
        <?php while ( have_posts() ) : the_post(); ?>

            <?php
            /**
             * Run the loop for the search to output the results.
             * If you want to overload this in a child theme then include a file
             * called content-search.php and that will be used instead.
             */
            get_template_part( 'content', 'search' );
            ?>

        <?php endwhile; ?>

        <?php the_posts_navigation(); ?>

    <?php else : ?>

        <?php get_template_part( 'content', 'none' ); ?>

    <?php endif; ?>

    </main><!-- #main -->
</div><!-- #primary -->

Спасибо вам, ребята!

** ОБНОВЛЕНИЕ Решение, предоставленное kashalo, частично работает, но результаты поиска по-прежнему немного отличаются от страницы продукта и отображаются только в одном столбце вместо таблицы.improvements by kashalo

** ОБНОВЛЕНИЕ Решение, предложенное Александром Вигмором, выглядит почти так, как я хотел, и выглядело так.Единственная проблема с копированием page.php в search.php заключается в том, что продукты по-прежнему отображаются в обычном порядке, но не тогда, когда они отображаются в категории, в которую они вписываются. Например: При поиске saat результаты сначала отображают продукты только с текстом, но обычно в категории Saatgut .

Alexander Wigmore's solution

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Вы хотите изменить способ обработки поиска в Wordpress.Это можно легко сделать, добавив «действие», добавив приведенный ниже код в файл functions.php.

function searchfilter($query) {

    if ($query->is_search && !is_admin() ) {
        $query->set('post_type',array('product'));
    }

return $query;
}

add_filter('pre_get_posts','searchfilter');

После этого на странице поиска будут отображаться только продукты.Стоит отметить, что вы можете добавить другие типы сообщений обратно через array в этой строке: $query->set('post_type',array('product'));.

0 голосов
/ 05 октября 2018

Я не советую напрямую изменять файл поиска wp или шаблона темы, но это хорошая практика для работы с дочерней темой.Для отображения дизайна результатов вы можете немного поиграть с css, чтобы настроить его так, как вам хочется, вместо того, чтобы в результатах отображались только продукты, вы можете использовать любой фильтр, построенный на тему, которую вы используете (если она есть), или создать себяфункция для фильтрации результатов (также называемая ловушками).

Пример фильтрации результатов подобен приведенному выше коду:

add_action( 'pre_get_posts', 'filter_woocommerce_products' ); // the hook

function filter_woocommerce_products( $query ) { // the function
    if( ! is_admin() && is_search() && $query->is_main_query() ) {
        // verify if can use the search function and the search string is from the search call
        $query->set( 'post_type', 'product' ); // filter the posts with type products that corrispond to woocommerce products.
    }
}

, и эту функцию необходимо сохранить в функции.php файл вашей темы или дочерней темы.

Для получения дополнительной информации я предлагаю вам прочитать больше о дочерней теме и документации pre_get_posts на странице wp.

Надеюсь, это поможети не стесняйтесь спрашивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...