2016-05-02 4 views
0

Как разместить этот список категорий в разбивке на страницы, потому что в настоящее время у меня есть код, который отображает весь список категорий, включая публикацию по категориям. Проблема заключается в том, как сделать его постраничной, если список категорий превышают 10Paginate Список категорий wordpress

$cats = get_categories("exclude=1,5,15"); 

      foreach ($cats as $cat) { 
        // setup the cateogory ID 
         $cat_id= $cat->term_id; 
         $cat_child =$cat -> category_parent; 

        // Make a header for the cateogry 
         echo "<div class='anchor2' id='cat_".$cat_id. "'></div>"; 
         echo "<div id='". $cat_child ."'class='cat_id".$cat_id." cat-cont large-6 medium-6 columns pad25px'>"; 
         echo "<h5 class='title-post cat_id_" . $cat_id ."' >".$cat->name."</h5>"; 
         echo "<a href='dev/all/#cat_".$cat_id."' class='see-more' target='_blank'>See more >></a>"; 

         // create a custom wordpress query 
         query_posts("cat=$cat_id&posts_per_page=5&depth=1"); 

         // start the wordpress loop! 
         if (have_posts()) : while (have_posts()) : the_post(); ?> 

          <?php // create our link now that the post is setup ?> 

          <?php get_template_part('parts/loop', 'archive-grid'); ?> 

         <?php endwhile; ?> 

         <?php else : ?>    
           <?php get_template_part('parts/content', 'missing'); ?> 
         <?php endif; // done our wordpress loop. Will start again for each category ?> 

      <?php echo "</div>";}// done the foreach statement ?> 

ответ

0

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

if (get_query_var('paged')) { 
         $paged = get_query_var('paged'); 
        } else if (get_query_var('page')) { 
         $paged = get_query_var('page'); 
        } else {$paged = 1;} 

      $per_page = 4; 
      $paged_offset = ($paged - 1) * $per_page; 
      $paginate = array(
          'orderby'   => 'name', 
          'order'    => 'ASC', 
          'hide_empty'  => 0, 
          'number'   => $per_page, 
          'paged'    => $paged, 
          'exclude'   => array(1,5,15,18), 
          'offset'   => $paged_offset 
         ); 
      // get all the categories from the database 
      $cats = get_categories($paginate); 
      echo '<div class="page1">'; 
      foreach ($cats as $cat) { 
         // setup the cateogory ID 

         $cat_id= $cat->term_id; 
         $cat_child =$cat -> category_parent; 


         // Make a header for the cateogry 
         echo "<div class='anchor2' id='cat_".$cat_id. "'></div>"; 
         echo "<div id='". $cat_child ."'class='cat_id".$cat_id." cat-cont large-6 medium-6 columns pad25px'>"; 
         echo "<h5 class='title-post cat_id_" . $cat_id ."' >".$cat->name."</h5>"; 
         echo "<a href='dev/all/#cat_".$cat_id."' class='see-more' target='_blank'>See more >></a>"; 
        // echo "<h2 id='". $cat_child ."'class='title-post cat_id_" . $cat_child ."' >".$cat->name."</h2>"; 
         // create a custom wordpress query 




       $args = array(
        'cat' => $cat_id, 
        'posts_per_page' => 5, 

       ); 

       query_posts($args); 

        query_posts($args); 

         // start the wordpress loop! 
         if (have_posts()) : while (have_posts()) : the_post(); ?> 

          <?php // create our link now that the post is setup ?> 

          <?php get_template_part('parts/loop', 'archive-grid'); ?> 

         <?php endwhile; ?> 

         <?php else : ?>    
           <?php get_template_part('parts/content', 'missing'); ?> 
         <?php endif; // done our wordpress loop. Will start again for each category ?> 


      <?php echo "</div>"; }// done the foreach statement 



      ?> 
      <div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div> 
      <div class="alignright"><?php next_posts_link('More &raquo;') ?></div> 
1

Вы не используете $ постраничной переменную вообще в запросе. Заменить код раздела

// create a custom wordpress query 
query_posts("cat=$cat_id&posts_per_page=5&depth=1"); 

с

if (get_query_var('paged')) { 
     $paged = get_query_var('paged'); 
    } else if (get_query_var('page')) { 
     $paged = get_query_var('page'); 
    } else {$paged = 1;} 

$args = array(
'cat' => $cat_id, 
'posts_per_page' => 5, 
'paged' => $paged 
); 

query_posts($args); 

И это будет хорошо работать для вас, дополнительно также можно использовать

<div class="alignleft"><?php previous_posts_link('&laquo; Previous') ?></div> 
    <div class="alignright"><?php next_posts_link('More &raquo;') ?></div> 
</div> 

Для даже полный контроль, если кнопки Далее и Назад работы , вы можете прокомментировать эту часть и можете использовать свой код для разбивки на страницы, чтобы показывать номера страниц и т. д. (если вы не хотите использовать кнопки next и prev и т. д.)

+0

Да, это показывает ссылку «больше» и переходит на страницу2, но содержание не изменяется и как установить количество категорий perpage? спасибо – winresh24

+1

Вы попали на страницу2 в адресной строке? И ваши следующие сообщения не отображаются? Вы устанавливаете «posts_per_page» на 5, что означает 5 сообщений на каждой странице. – laraib

+0

да, он принимает меня на страницу2, но показывает тот же контент. Эта 'posts_per_page' предназначена для просмотра этой статьи по адресу http://imgur.com/mXtZXlV. Я хочу разбивать страницы списка категорий. Спасибо, что вы можете мне помочь – winresh24

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