2010-07-14 7 views
0

У меня есть следующий код на странице WordPress. Он в основном просто захватывает 3 сообщения и отображает их, а также содержимое страницы вверху. То, что я хочу добавить, это разбиение на страницы так, что пользователь может просматривать все сообщения, как я могу заставить это работать с настраиваемыми циклами?WordPress Pagination на странице

<?PHP 

     get_header(); 

     /* Template Name: News */ 

    ?> 

    <div style="padding: 0 20px;"> 


     <div class="box clearfix side" style="margin:10px 0;"> 

     <div style="float:left;width:628px;"> 

     <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
       <div class="content" id="post-<?php the_ID(); ?>"> 
        <h2><?php the_title(); ?><?php edit_post_link('Edit', ' <small>[', ']</small>'); ?></h2> 

     <?php the_content('<p>Read the rest of this page &raquo;</p>'); ?> 


        <?php wp_link_pages(array('before' => '<p>Pages: ', 'after' => '</p>', 'next_or_number' => 'number')); ?> 


        <hr /> 

       </div> 
       <?php endwhile; endif; ?> 

<hr /> 

     <?php $blog_query = new WP_Query('posts_per_page=3'); while ($blog_query->have_posts()) : $blog_query->the_post(); ?> 

      <div class="content" id="post-<?php the_ID(); ?>"> 

       <h4><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h4> 



       <?php the_excerpt(); ?> 

      </div> 



     <?php endwhile; ?> 

     <?php if ($blog_query->have_posts()) : ?> 

      <?php if(function_exists('wp_pagenavi')) 
      { 
       wp_pagenavi(); 
      } 
      ?> 

       <?php else: ?> 

       <h2>oooops!!!</h2> 


       <?php endif; ?> 


     </div> 


     </div> 

    </div> 

    <?PHP 

     get_footer(); 

    ?> 
+0

любые обновления? нужно это для клиентского проекта как можно скорее. спасибо – Cameron

ответ

0

Оказывается, что вам нужно сделать что-то вроде этого:

<?php $temp = $wp_query; $wp_query= null; ?>   

     <?php $wp_query = new WP_Query(array('posts_per_page' => 3, 'paged' => $paged)); while ($wp_query->have_posts()) : $wp_query->the_post(); ?> 

      <div class="content" id="post-<?php the_ID(); ?>"> 

       <h4><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></h4> 

       <?php the_excerpt(); ?> 

      </div> 

     <?php endwhile; ?> 

     <?php if(function_exists('wp_pagenavi')) 
     { 
      wp_pagenavi(); 
     } 
     ?> 

     <?php $wp_query = null; $wp_query = $temp; ?> 
+0

Да, в основном вы должны объявить глобальную wp_query и установить ее внутри temp va. Pretty sucky: / – Cameron

0

Вы уверены, что не собираетесь немного изобретать колесо здесь? Почему бы не установить количество сообщений для отображения в админе, а затем использовать собственный пейджинг WP для блога?

+0

Не имеет значения, задал ли я номер в админке или коде, и использую собственную разбивку на страницы. Проблема в том, что он не отображается или когда я вручную набираю/page/2/в url, он не показывает следующую страницу сообщений. Так что-то, но что? – Cameron

+0

Что он показывает? 404? Является ли это шаблоном страницы или стандартным 'index.php'? Pagination будет работать только на стандартном 'in_posts()' loop внутри 'index.php' – TheDeadMedic

+0

, он просто показывает один и тот же контент, поэтому, по сути, он игнорирует URL-адрес, но также не показывает разбивку на страницы! – Cameron

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