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

Я создаю настраиваемую страницу поиска для моего нового сайта, включающую настраиваемые разделы как для сообщений в блоге, так и для продукта, но в качестве «бандитского» решения для настоящего времени я хочу просто вернуть результаты поиска по продуктам, а не по сообщениям..

Я использую Wordpress v - 4.9.8 и использую Divi Child Theme (Divi Parent Theme v - 3.17.6)

В настоящее время я пытаюсь подключиться к pre_get_posts с помощью следующего кодав functions.php, но он по-прежнему только возвращает результаты «сообщений», а не как продукты:

// LIMIT SEARCH TO POSTS OR PRODUCTS ONLY

add_filter('pre_get_posts','SearchFilter', 9);

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

Оригинальный код документа

Любые идеи о том, как сделатьэта работа?Я думаю, может быть, создание моей собственной страницы search.php может работать вместо этого?Я чувствую, что что-то простое в functions.php будет работать лучше.

1 Ответ

0 голосов
/ 19 ноября 2018

Чтобы выполнить поиск по products

, следуйте приведенному ниже процессу.

Шаг - 1

Форма поиска для пользовательского типа сообщения: Products

---> Добавить ниже код, где вы представляете форму поиска

    <div>   
    <h3>Search Products</h3>
    <form role="search" action="<?php echo site_url('/'); ?>" method="get" id="searchform">
    <input type="text" name="s" placeholder="Search Products"/>
    <input type="hidden" name="post_type" value="products" /> <!-- // hidden 'products' value -->
    <input type="submit" alt="Search" value="Search" />
  </form>
 </div>

Шаг - 2

----> Добавьте приведенный ниже код в ваши активные темы function.php

function template_chooser($template)   
{    
  global $wp_query;   
  $post_type = get_query_var('post_type');   
  if( $wp_query->is_search && $post_type == 'products' )   
  {
    return locate_template('archive-search.php');  //  redirect to archive-search.php
  }   
  return $template;   
}
add_filter('template_include', 'template_chooser'); 

Шаг-3

---> Создать шаблон результатов поиска для пользовательского типа записи (archive-search.php)

<?php
        /* Template Name: Custom Search */        
        get_header(); ?>             
        <div class="contentarea">
            <div id="content" class="content_right">  
                     <h3>Search Result for : <?php echo "$s"; ?> </h3>       
                     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>    
                <div id="post-<?php the_ID(); ?>" class="posts">        
                     <article>        
                    <h4><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h4>        
                    <p><?php the_exerpt(); ?></p>        
                    <p align="right"><a href="<?php the_permalink(); ?>">Read     More</a></p>    
                    <span class="post-meta"> Post By <?php the_author(); ?>    
                     | Date : <?php echo date('j F Y'); ?></span>    

                    </article><!-- #post -->    
                </div>
        <?php endwhile; ?>
    <?php endif; ?>




           </div><!-- content -->    
        </div><!-- contentarea -->   
        <?php get_sidebar(); ?>
        <?php get_footer(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...