как отобразить результаты поиска wordpress?

<p>я потратил много времени на выяснение, почему мой поиск не работает в моем шаблоне. до сих пор я был в состоянии выяснить, как включить файл searchform.php в мой заголовок, создал файл search.php, который в настоящее время пуст (поэтому в тот момент, когда я что-то ищу, меня перенаправляют на пустую страницу, и я думаю, что определенно что-то нужно в файле search.php, чтобы оно заработало), я читал все вокруг кодекса wordpress, но не смог найти решение, только полезная информация, которую я нашел, была вот такой.</p><p> <a href="http://codex.wordpress.org/creating\_a\_search\_page">http://codex.wordpress.org/creating\_a\_search\_page</a> </p><p>можете ли вы предложить, что нужно сделать, чтобы отобразить результаты поиска? есть ли специальный запрос, функция и т. д.? я действительно не могу найти это нигде.</p><p>мой файл <strong>searchform.php</strong>, если он вам нужен.</p><pre><code><form action="<?php echo home\_url(); ?>" id="search-form" method="get"> <input type="text" name="s" id="s" value="type your search" onblur="if(this.value=='')this.value='type your search'" onfocus="if(this.value=='type your search')this.value=''" /> <input type="hidden" value="submit" /> </form> </code></pre>

<p>по сути, вам нужно включить цикл wordpress в шаблон search.php, чтобы просмотреть результаты поиска и показать их как часть шаблона.</p><p>ниже приведен очень простой пример из <a href="http://themeshaper.com/2012/11/06/the-wordpress-theme-search-template-and-page-template/">шаблон поиска тем wordpress и шаблон страницы</a> более на themeshaper.</p><pre><code><?php /** * the template for displaying search results pages. * * @package shape * @since shape 1.0 */ get\_header(); ?> <section id="primary" class="content-area"> <div id="content" class="site-content" role="main"> <?php if ( have\_posts() ) : ?> <header class="page-header"> <h1 class="page-title"><?php printf( \_\_( 'search results for: %s', 'shape' ), '<span>' . get\_search\_query() . '</span>' ); ?></h1> </header><!-- .page-header --> <?php shape\_content\_nav( 'nav-above' ); ?> <?php /* start the loop */ ?> <?php while ( have\_posts() ) : the\_post(); ?> <?php get\_template\_part( 'content', 'search' ); ?> <?php endwhile; ?> <?php shape\_content\_nav( 'nav-below' ); ?> <?php else : ?> <?php get\_template\_part( 'no-results', 'search' ); ?> <?php endif; ?> </div><!-- #content .site-content --> </section><!-- #primary .content-area --> <?php get\_sidebar(); ?> <?php get\_footer(); ?> </code></pre>

<p>вам нужно включить цикл wordpress в ваш search.php это пример</p><p><strong> search.php </strong>файл шаблона:</p><pre><code><?php get\_header(); ?> <?php $s=get_search_query(); $args = array( 's' =>$s ); // the query $the\_query = new wp\_query( $args ); if ( $the\_query->have\_posts() ) { \_e("<h2 style='font-weight:bold;color:#000'>search results for: ".get\_query\_var('s')."</h2>"); while ( $the_query->have_posts() ) { $the\_query->the\_post(); ?> <li> <a href="<?php the\_permalink(); ?>"><?php the\_title(); ?></a> </li> <?php } }else{ ?> <h2 style='font-weight:bold;color:#000'>nothing found</h2> <div class="alert alert-info"> <p>sorry, but nothing matched your search criteria. please try again with some different keywords.</p> </div> <?php } ?> <?php get\_sidebar(); ?> <?php get\_footer(); ?> </code></pre>

<p>я использую файлы <code>searchform.php</code> и <code>search.php</code>, как уже упоминалось, но здесь я предоставляю фактический код. </p><p> <a href="http://codex.wordpress.org/creating\_a\_search\_page">создание страницы поиска</a> <code>codex</code> страница помогает здесь, и <code>#creating\_a\_search\_page\_template</code> показывает поисковый запрос. </p><p>в моем случае я передаю аргументы <code>$search_query в <a href="http://codex.wordpress.org/class_reference/wp_query">wp_query class (который может определить, является ли поисковый запрос!). затем я запускаю <a href="http://codex.wordpress.org/the_loop">цикл , чтобы отобразить информацию о записи, которую я хочу, которая в моем случае является <a href="http://codex.wordpress.org/function_reference/the_permalink">the_permalink и the_title.форма поиска:<form class="search" method="get" action="<?php echo home_url(); ?>" role="search"> <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'search …', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'search for:', 'label' ) ?>" /> <button type="submit" role="button" class="btn btn-default right"/><span class="glyphicon glyphicon-search white"></button>  search.php файл шаблона:<?php global $query\_string; $query_args = explode("&", $query\_string); $search_query = array(); foreach($query\_args as $key => $string) { $query_split = explode("=", $string); $search_query[$query\_split[0]] = urldecode($query_split[1]); } // foreach $the\_query = new wp\_query($search_query); if ( $the\_query->have\_posts() ) : ?> <!-- the loop --> <ul> <?php while ( $the_query->have_posts() ) : $the\_query->the\_post(); ?> <li> <a href="<?php the\_permalink(); ?>"><?php the\_title(); ?></a> </li> <?php endwhile; ?> </ul> <!-- end of the loop --> <?php wp\_reset\_postdata(); ?> <?php else : ?> <p><?php \_e( 'sorry, no posts matched your criteria.' ); ?></p> <?php endif; ?> </code></pre>

<p>проверьте, содержит ли ваш шаблон в папке <code>theme</code> <code>search.php</code> и <code>searchform.php</code> или нет.</p>

<p>wordpress включает в результаты поиска теги, категории и таксономии</p><p>этот код взят из <a href="http://atiblog.com/custom-search-results/">http://atiblog.com/custom-search-results/</a> </p><p>некоторые функции здесь взяты из двадцати девятнадцати тем. потому что это сделано по этой теме. </p><p>этот пример кода поможет вам включить теги, категории или любую пользовательскую таксономию в ваш поиск. и покажите посты, содержащие эти теги или категории. </p><p>вы должны изменить ваш search.php вашей темы, чтобы сделать это.</p><pre><code><?php $search=get_search_query(); $all\_categories = get\_terms( array('taxonomy' => 'category','hide\_empty' => true) ); $all_tags = get_terms( array('taxonomy' => 'post_tag','hide_empty' => true) ); //if you have any custom taxonomy $all\_custom\_taxonomy = get\_terms( array('taxonomy' => 'your-taxonomy-slug','hide\_empty' => true) ); $mcat=array(); $mtag=array(); $mcustom_taxonomy=array(); foreach($all\_categories as $all){ $par=$all->name; if (strpos($par, $search) !== false) { array_push($mcat,$all->term_id); } } foreach($all\_tags as $all){ $par=$all->name; if (strpos($par, $search) !== false) { array_push($mtag,$all->term_id); } } foreach($all\_custom\_taxonomy as $all){ $par=$all->name; if (strpos($par, $search) !== false) { array_push($mcustom\_taxonomy,$all->term_id); } } $matched\_posts=array(); $args1= array( 'post_status' => 'publish','posts_per_page' => -1,'tax_query' =>array('relation' => 'or',array('taxonomy' => 'category','field' => 'term_id','terms' =>$mcat),array('taxonomy' => 'post\_tag','field' => 'term\_id','terms' =>$mtag),array('taxonomy' => 'custom_taxonomy','field' => 'term_id','terms' =>$mcustom\_taxonomy))); $the_query = new wp_query( $args1 ); if ( $the_query->have_posts() ) { while ( $the\_query->have\_posts() ) { $the_query->the_post(); array_push($matched\_posts,get\_the\_id()); //echo '<li>' . get\_the\_id() . '</li>'; } wp\_reset\_postdata(); } else { } ?> <?php // now we will do the normal wordpress search $query2 = new wp_query( array( 's' => $search,'posts\_per\_page' => -1 ) ); if ( $query2->have_posts() ) { while ( $query2->have\_posts() ) { $query2->the_post(); array_push($matched\_posts,get\_the\_id()); } wp\_reset\_postdata(); } else { } $matched_posts= array_unique($matched\_posts); $matched_posts=array_values(array_filter($matched\_posts)); //print\_r($matched_posts); ?> <?php $paged = ( get\_query\_var('paged') ) ? get\_query\_var('paged') : 1; $query3 = new wp_query( array( 'post_type'=>'any','post__in' => $matched\_posts ,'paged' => $paged) ); if ( $query3->have\_posts() ) { while ( $query3->have_posts() ) { $query3->the\_post(); get\_template\_part( 'template-parts/content/content', 'excerpt' ); } twentynineteen\_the\_posts\_navigation(); wp\_reset\_postdata(); } else { } ?> </code></pre>