Навигация по категориям в WordPress

Коротко постараюсь объяснить что такое навигация по категориям. Допустим, вам нужно на главной странице или на странице рубрик в WordPress вывести ссылки на предыдущую и следующую категорию. В своем роде, получается скроллинг по категориям, сниппет которого ниже я покажу.

И так, полный код самого сниппета, ну а после рассмотрим конкретнее что и за что отвечает, чтоб вы смогли настроить его под себя. Сразу хочу отметить как именно работает данный сниппет. На главной странице появляются две кнопочки:
первая указывает на главную страницу, вторая - на первую категорию (согласно сортировке категорий в админ панеле). На странице рубрики, данные кнопочки указывают:
первая - на страницу предыдущей рубрики, вторая - на страницу следующей рубрики, относительно текущей.
При переходе в запись, одна кнопка указывает на категорию записи, вторая - на следующую категорию, относительно категории, которой принадлежит запись.

Ну и на конец сам код:
function category_paginator() {

  $current_cat = get_query_var('cat');
  $getcat = get_the_category();
  $current_post_cat = $getcat[0]->cat_ID;
  $previous = -1;
  $next = 0;
  $count = 0;
  $args = array(
    'orderby' => 'name',
    'order' => 'ASC',
    'hierarchical' => 0,
    'hide_empty' => 1
    );
  $categories = get_categories($args);
  foreach ($categories as $cat) {
    $count++;
    if ($cat->cat_ID == $current_cat||$cat->cat_ID == $current_post_cat) {
      $previous = $count - 2;
      $next = $count;
    }
  }
  if ($previous >= 0&&!is_single()) {
    echo '<div class="goback"> <a href="' . get_category_link( $categories[$previous]->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $categories[$previous]->name ) . '" ' . '>	« ' . $categories[$previous]->name.'</a> </div> ';
  } elseif (is_single()) {
  $getcat = get_the_category();
 echo '<div class="goback"> <a href="' . get_category_link($getcat[0]->cat_ID) . '" title="' . sprintf( __( "View all posts in %s" ), $getcat[0]->name ) . '" ' . '> « ' . $getcat[0]->name.'</a> </div> ';
  }

   else { echo '<div class="goback"><a href="/">« На главную</a></div>'; }
  if ($next > 0 && $next < count($categories)) {
    echo '<div class="gofwd"> <a href="' . get_category_link( $categories[$next]->term_id ) . '" title="' . sprintf( __( "View all posts in %s" ), $categories[$next]->name ) . '" ' . '>' . $categories[$next]->name.' »</a> </div> ';
  } else {echo '<div class="gofwd"><a href="/">На главную »</a></div>';}

}
Как и любой сниппет в WordPress вставляем этот код в файл functions.php, который лежит в папке вашей темы. В шаблоне, в месте, где планируете вывести кнопки навигации по категориям нужно вставить следующую функцию:
category_paginator();

Теперь вам нужно подстроить внешний вид кнопок под свой стиль. В моем случае кнопки имеют фиксированное позиционирование и находятся по центру и краям страницы. Вот мой CSS код кнопок, на случай если вам нужно именно такая реализация:

.gofwd, .goback {
    background: none repeat scroll 0 0 #FF0000;
    height: auto;
    margin-top: -9px;
    opacity: 0.5;
    padding: 2px 10px;
    position: fixed;
    top: 50%;
    width: auto;
    z-index: 999;
}
.goback { left: 20px; }
.gofwd { right: 20px; }

Как видно по стилям, класс левой кнопки это goback и класс правой - gofwd. Теперь вы можете внешний вид ваших кнопок подстроить под свой сайт.

Блог WordPress плагины и хаки Навигация по категориям в WordPress