2014-01-27 4 views
0

Я пытаюсь установить детскую тему поверх WP Pro Real Estate 3, которую создал кто-то другой. В другом месте в этой теме происходит другая навигация контента. Я попытался подключить плагин для разбивки на страницы, и он также не будет зацикливаться на сообщениях. URL-адрес обновляется, но 10 сообщений отображаются всегда одинаково.WP Pagination не зацикливается на сообщениях

Вот код страницы. Где я должен сначала посмотреть, что может вызвать проблему?

 <?php global $ct_options; 
      if($ct_options['ct_layout'] == 'left-sidebar') { 
      get_sidebar(); 
     } ?> 

     <section id="blog" class="ten columns marT20 left"> 
     <h2> Blog </h2> 

     <?php query_posts('cat=-39'); ?> 
      <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

       <article id="post-<?php the_ID(); ?>" <?php post_class('left clear'); ?>>       

        <?php if (has_post_thumbnail()) { 
           the_post_thumbnail(); 
            } ?> 

        <h2 class="entry-title marB18"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
        <?php the_excerpt(); ?> 
        <br/> 
        <?php ct_read_more_link(); ?> 
        <!-- <a href="<?php the_permalink(); ?>" class="read-more" />Read More</a> --> 

       <?php wp_link_pages(array('before' => '<div class="pagination">' . __('Pages:', 'responsive'), 'after' => '</div>')); ?> 
       </article> 

      <?php endwhile; endif; ?> 

       <?php if (function_exists("pagination")) { 
pagination($additional_loop->max_num_pages); 

} ?>  

     </section> 


     <div class="sidebar six columns marT20 left"> 
      <?php if (function_exists('dynamic_sidebar') && dynamic_sidebar('Sidebar Blog')) :else: endif; ?> 

      <div id="sidebar-inner"> 
       <aside class="widget widget_text left" id="about-nic-nav"><h4>About Nicaragua</h4> 
        <div class="textwidget"> 
        <?php query_posts('cat=39'); ?> 
        <ul> 
        <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
         <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li> 
        <?php endwhile; endif; ?> 
        </ul> 
        </div> 
       </aside> 
       <div class="clear"></div> 
      </div> 


     </div> 

ответ

0

Видя, как она называется после The Loop, я хотел бы предложить, что pagination() функция от вашего плагина только добавляет номера страниц. На самом деле он не задает ваш запрос для разбивки на страницы.

Для этого вам необходимо убедиться, что вы указали параметр paged в запросе.

Например, чтобы показать 5 опубликованных сообщений на странице в хронологическом порядке, включают в себя это до The Loop -

$args = array(
    'orderby'  => 'date', 
    'order'   => DESC, 
    'paged'   => get_query_var('paged'), 
    'posts_per_page' => 5, 
    'post_type'  => 'post', 
    'post_status' => 'publish' 
); 
query_posts($args); 

Отъезд Pagination Parameters раздел WP_Query Codex для получения дополнительной информации.

Кроме того, ознакомьтесь с Codex for The Loop, если вы не знаете, что это такое.

Дополнительная информация

Как и в сторону, я заметил в своем коде, который вы используете Loop дважды. Есть много случаев, когда это необходимо, однако в обоих случаях ваши кажутся одинаковыми, поэтому нет необходимости вспоминать query_posts(). Вместо этого, в конце запуска fry Loop call wp_reset_query() (это хорошая привычка всегда к нам, что в любом случае), которая вернет указатель обратно в начало цикла и сэкономит ваше время, поскольку у вас не будет снова запросить базу данных.

Если вам необходимо установить петли для вывода различных сообщений, вы должны использовать вместо этого new WP_Query() (если честно, я бы рекомендовал всегда использовать это, а не the_query(), так как при необходимости легче настроить с помощью крючков). Например,

$args = array(
    'cat' => 10, 
    'post_status' => 'scheduled' 
); 
$scheduled_posts = new WP_Query($args); 

if($scheduled_posts->have_posts()) : while($scheduled_posts->have_posts()) : $scheduled_posts->the_post(); 
?> 
     <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>> 
      <h2><?php the_title(); ?> </h2> 
      <div><?php the_content(); ?></div> 
     </div> 
<?php 
    endwhile; 
endif; 

wp_reset_query(); 
+0

Спасибо! Я уже видел этот блок аргументов, но я, должно быть, пропустил его, чтобы он не работал. Теперь это работает! Ура! – crysmeg

+0

Добро пожаловать. –

Смежные вопросы