2016-01-23 9 views
0

У меня проблема с страницей результатов поиска, разбиение на страницы не работает, когда я хочу перейти на следующую страницу, я перенаправлен на страницу индекса, но URL-адрес: www.mywebsite.com/ стр./2 /? s = слово.Поиск pagination wordpress

Для всех страниц выполняется разбиение на страницы, только для поиска не работает.

это код search.php

<?php 
/** 
* The template for displaying Search Results pages. 
*/ 

get_header(); ?> 

<?php 
    $search = isset($_GET['s']) ? $_GET['s']: null; 
    $user_filtre = ''; 
    $user_display = ''; 

    if($search){ 
     $user_filtre .= 's=' . $_GET['s'] . '&'; 
     $user_display .= 's=' . $_GET['s'] . '&'; 
    }?> 
    <div id="main-search" class="content-dark hidden-sm hidden-xs"> 
    <div class="container"> 
     <form method="get" action="<?php bloginfo('url'); ?>" accept-charset="UTF-8"> 
      <!--input name="s" id="s" type="hidden" --> 
      <div id="main-search-fields"> 
       <p class="pull-left term">Search Term:</p> 
       <input name="s" value="<?php the_search_query(); ?>"autocomplete="off" type="search"> 
      </div> 
      <div id="main-search-btn"> 
       <input class="button-green-download-big" type="submit" value="Search"> 
      </div> 
     </form> 
    </div> 
</div> 

<div class="browse-content"> 
    <div class="container"> 
     <section> 
      <div class="row"> 
       <ul>       
       <?php if(have_posts()): ?> 
       <?php while (have_posts()) : the_post(); ?>                        
         <?php include '_includes/items/item_2.php';?>             
        <?php endwhile; ?> 
        <?php endif; ?> 
       </ul> 
      </div> 
     </section> 
     <?php novavideo_theme_pagination(); ?> 
     </div> 
    </div> 
</div>  

Любое имеет ideea?

item_2.php.

<div class="browse-movie-wrap col-xs-10 col-sm-4 col-md-5 col-lg-4"> 
      <a href="<?php the_permalink(); ?>" class="browse-movie-link"> 
       <figure> 
        <?php if($values = get_post_custom_values("poster_url")) { ?> 
        <img class="img-responsive" src="<?php echo $values[0]; ?>" alt="<?php the_title();?> Watch Online" width="210" height="315"> 
        <?php } ?> 
        <figcaption class="hidden-xs hidden-sm"> 
         <span class="fa fa-star icon-color"></span> 
         <h4 class="rating"><?php $rating = get_post_custom_values("imdbRating"); echo $rating[0]; ?>/10</h4> 
         <h4> 
          <?php $categories = get_the_category(); 

          if (! empty($categories[0])) { 
           echo esc_html($categories[0]->name); 
          } 
          ?> 
         </h4> 
         <h4 class="quality-button"><span class="fa fa-play-circle"></span> <?php $terms_as_text = strip_tags(get_the_term_list($wp_query->post->ID, 'quality', '', ', ', '')); echo $terms_as_text;; ?></h4> 
         <span class="button-green-download-big margin-button">Open Movie</span> 
        </figcaption> 
       </figure> 
      </a> 
      <div class="browse-movie-bottom"> 
       <a href="<?php the_permalink(); ?>" class="browse-movie-title"><?php $title = get_post_custom_values("Title"); echo $title[0]; ?></a> 
        <div class="browse-movie-year"><?php      $terms = wp_get_post_terms($post->ID, 'release-year', array("fields" => "all"));      if (! empty($terms) && ! is_wp_error($terms)){       foreach ($terms as $term_single) {        $term_link = get_term_link($term_single);        echo $term_single->name;                }      }      ?></div> 
      </div> 
     </div> 

ответ

0

Результаты поиска инстанцируются через query_posts и контролирует, сколько результатов у вас есть на каждой странице. В своем коде, это, вероятно, происходит с помощью включаемого: /_includes/search-template.php, но если нет, то установите его так:

// 1- Created a paged variable that knows how many paginated pages exist (depends on your site) 
$paged = get_query_var('paged') ? get_query_var('paged') : 1; 

// 2- Pass `paged` into array of arguments for query_posts 
$args = array(
    'posts_per_page' => 20, 
    'order'   => 'DESC', 
    'paged'   => $paged, 
); 

// 3- Submit query_posts to WordPress with arguments set 
query_posts($args); 

Теперь вы можете использовать next_posts_link();, чтобы показать ссылку постраничной страницы. Просто замените ссылки на theme_pagination(); на next_post_link();, и он должен выводить правильные результаты.

Если вы хотите отвлечь всю эту логику от своего шаблона, зарегистрируйтесь pre_get_posts. Это другой метод, и вы включили бы всю эту логику в functions.php, но достигнете аналогичных результатов.

+0

Не работает. Тем не менее, я перенаправляюсь на домашнюю страницу, когда хочу перейти на страницу 2,3 и т. Д. –

+0

Если вы хотите, чтобы я отлаживал ваш код для вас, вам нужно избавиться от всех этих включенных файлов. Я не могу сказать, откуда исходит ошибка. – staypuftman

+0

Я отредактировал сообщение, я закрыл шаблон поиска, и я положил туда item_2.php. Проблема странная, потому что на локальном хосте и другом сайте работает идеально. –