Рубрика // WordPress 26.04.16

WordPress вывести все категории с постраничной навигацией

Бывает такое, что на у вас на сайте очень много категорий, к примеру, их 1500 штук. Выводить их все сразу на одной странице не целесообразно. Поэтому лучше разбить страницу на несколько частей и добавить постраничную навигацию. Расскажу как это сделать.

Код вставляется в отдельный шаблон. Т.е, создаете новый файл в папке с темой, напр. categoty-page.php, в него вставляете код category.php и сверху добавляете код для инициализации темы:

<?php
/*
Template Name: categoty-page.php
*/
?>

Затем создаете в админке новую статическую страницу, пустую, и выбираете шаблон для нее categoty-page.php в выпадающем списке. Вместо стандартного цикла вывода, вставим следующий код, который разбивает список категорий на страницы.

Вывод категорий с постраничной навигацией:

 <?php
    $args = array(
            'taxonomy' => 'category',
            'orderby' => 'title',
			'order'=>'ASC',
			'pad_counts'=>'true',
            'hide_empty' => 1,
			'show_count'=>1,
            'hierarchical' => 0,
            'parent' => '0',
    ); 
	
	         /*   Постраничная навигация вверху    */
    $categories = get_categories($args);
    $numOfItems = 200;
    $page = isset( $_GET['next'] ) ? abs( (int) $_GET['next'] ) : 1;
    $to = $page * $numOfItems;
    $current = $to - $numOfItems;
    $total = sizeof($categories);	
 
    unset($category);
    echo paginate_links( array(
        'base' => add_query_arg( 'next', '%#%' ),
        'format' => '',
        'prev_text' => __('&laquo;'),
        'next_text' => __('&raquo;'),
        'total' => ceil($total / $numOfItems),
        'current' => $page
    ));
	
  echo '<ul>';
 for ($i=$current; $i<$to; ++$i) {
         $category = $categories[$i];
             if ($category->name) {
                   echo '<li><a rel="nofollow" href="' . 
             get_term_link($category->slug, 'category') . '" title="' . 
         sprintf( __( "View all posts in %s" ), $category->name ) . '" ' . 
'>' . $category->name.'</a></li>';}
 }
echo '</ul>';
  • Facebook
  • Memori
  • Twitter

Написать комментарий

Copyright © 2010-2011 Как создать сайт и заработать.. Все права защищены.
интернет