8

Навигация в WordPress ч.II. Рубрики, метки.

Содержание:


Рубрики

Рубрики — это важный элемент навигации любого сайта на WordPress. Очень часто меню рубрик становится де-факто главным меню, а как бы основное меню отходит в тень. Хороший пример — данный сайт: главное меню, состоящее из страниц, занимает второстепенную роль, тогда как меню рубрик обеспечивает основную навигацию по содержанию сайта.

Рассмотрим основную функцию, отвечающую за вывод меню рубрик: wp_list_categories().

Хоть в названии функции и использовано слово рубрика (category), но на самом деле ее можно использовать для вывода любых зарегистрированных типов таксономий, как стандартных (метки, рубрики ссылок), так и нестандартных (см. параметр taxonomy). Конечно, желательно, чтобы эти таксономии имели иерархию. Например метки выводить не интересно, т.к. получится просто плоский список.

Использование функции:

<?php
$args = array(
  'show_option_all'    => , // Если задано любое значение отличное от 0, false или null, отображает ссылку на главную. В качестве текста ссылки берется значение параметра. По молчанию: ссылка не выводится. Есть ощущение, что в реализации этого параметра (WP 3.0.3) баг, т.к. по идее ссылка должна быть на главную страницу записей, которая не всегда совпадает с главной. Ее можно изменить в разделе Параметры -> Чтение -> "На главной странице отображать".
  'orderby'            => 'name', // Выбор поля сортировки. name (по умолчанию) - сортировка по имени рубрики. Другие допустимые значения: ID - по идентификатору, slug - по ярлыку, count - по количеству записей, term_group - ???
  'order'              => 'ASC', // Порядок сортировки. По возрастанию - ASC (по умолчанию) или по убыванию - DESC.
  'show_last_update'   => 0, // Дата последнего изменения. 0 (по умолчанию) - не отображать. 1 - отображать.
  'style'              => 'list', // 'list' (по умолчанию) - отображает рубрики в виде немаркированного списка - <ul>. 'none' - отображает рубрики как обычные ссылки, разделенные тегом <br/>
  'show_count'         => 0, // Количество записей в рубрике. 0 (по умолчанию) - не отображать. 1 - отображать.
  'hide_empty'         => 1, // 1 (по умолчанию) - скрывать пустые рубрики. 0 - показывать пустые рубрики.
  'use_desc_for_title' => 1, // 1 (по умолчанию) - использовать описание рубрики для атрибута title ссылки. 0 - не использовать.
  'child_of'           => 0, // Выводятся только подрубрики указанной рубрики (без ограничения по глубине). 0 (по умолчанию) - выводятся все рубрики.
  'feed'               => , // Вывод ссылки на RSS поток. Значение параметра используется в качестве текста ссылки.
  'feed_type'          => , // Тип потока: atom, rss, rss2 (по умолчанию).
  'feed_image'         => , // Путь к файлу изображения. Позволяет использовать вместо текстовой ссылки изображение.
  'exclude'            => , // Исключает из списка указанные рубрики. Несколько идентификаторов указываются через запятую. Например: '2,5,22,123'.
  'exclude_tree'       => , // Исключает из списка не только указанные рубрики, но и все их подрубрики.
  'include'            => , // Включает в список только указанные рубрики. Несколько идентификаторов указываются через запятую. Например: '2,5,22,123'.
  'hierarchical'       => 1, // 1 (по умолчанию) - список рубрик выводится с учетом иерархии (вложенные <ul>). 0 - рубрики выводятся плоским списком.
  'title_li'           => __( 'Categories' ), // Заглавие списка. По умолчанию: Рубрики.
  'number'             => , // Ограничивает максимальное количество рубрик в списке. По умолчанию: NULL - без ограничений.
  'echo'               => 1, // 1 (по умолчанию) - сразу вывести результат на экран. 0 - вернуть для последующей обработки в php.
  'depth'              => 0, // 0 (по умолчанию) - вывод всех рубрик с сохранением иерархии. -1 - вывод всех рубрик без иерархии (hierarhical=0). 1 - вывод рубрик только первого уровня (без подрубрик). 2,3,4 и т.д - определяет максимальную глубину иерархии (например если depth=3, то выводятся только рубрики 1-го, 2-го и 3-го уровней).
  'current_category'   => 0, // Здесь можно указать идентификатор рубрики, которая будет считаться текущей. Соответствующему элементу списка (<li>) присваивается класс "current-cat".
  'pad_counts'         => 0, // 1 - при подсчете записей в рубрике учитываются записи как в самой рубрике так и ее подрубриках (используется автоматом если show_count=1 и hierarhical=1). 0 - учитываются только записи в рубрике.
  'taxonomy'           => 'category', // Таксономия. По умолчанию: category - рубрики. Но использовать можно любую, как стандартную (post_tag - метки, link_category - рубрики ссылок), так и нестандартную (созданную с помощью register_taxonomy()).
  'walker'             => 'Walker_Category' // Позволяет переопределить под себя форму вывода рубрик, включая html-разметку. В качестве параметра необходимо передать ОБЪЕКТ. Исходный класс объекта создается наследованием от класса Walker или Walker_Category.
);
wp_list_categories( $args );
?>

Обычно меню рубрик располагается в боковых колонках и выводится с помощью виджета. К сожалению, стандартный виджет WordPress — Рубрики, не позволяет изменять большинство вышеперечисленных параметров. Но выход есть — установка плагина —  My Category Order. Он поддерживает почти все вышеперечисленные параметры, но самое главное — вы можете задать произвольный порядок рубрик, что является уникальной и очень востребованной функцией.

Настройки виджета My Category Order

Настройки виджета My Category Order

Метки

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

wp_tag_cloud() — основная функция для вывода «облака» меток. Чем больше вес метки, тем большим размером шрифта она отображается.

Использование функции:

<?php
$args = array(
  'smallest'                  => 8, // Размер шрифта для метки с наименьшим весом. Единица измерения указывается в параметре unit.
  'largest'                   => 22, // Размер шрифта для метки с наибольшим весом. Единица измерения указывается в параметре unit.
  'unit'                      => 'pt', // Единица измерения. Варианты: pt (по умолчанию), px, em, %
  'number'                    => 45, // Максимальное количество меток в облаке. 0 - вывод всех меток. По умолчанию: 45.
  'format'                    => 'flat', // Формат списка меток. flat (по умолчанию) - метки выводятся как текст с разделителем, определяемым параметром separator. list - Мети выводятся в виде немаркированного списка (<ul>) с классом wp-tag-cloud. array - возвращает метки в виде массива для последующей обработки в php.
  'separator'                 => "\n\", // Разделитель. Используется, если format=flat.
  'orderby'                   => 'name', // Выбор поля сортировки. name (по умолчанию) - сортировать по имени. count - по количеству записей.
  'order'                     => 'ASC', // Порядок сортировки. По возрастанию - ASC (по умолчанию) или по убыванию - DESC.
  'exclude'                   => null, // Исключает из списка указанные метки. Несколько идентификаторов указываются через запятую. Например: '2,5,22,123'.
  'include'                   => null, // Включает в список только указанные метки. Несколько идентификаторов указываются через запятую. Например: '2,5,22,123'.
  'topic_count_text_callback' => default_topic_count_text, // Функция подсчета записей. Можно переопределить на свою.
  'link'                      => 'view', // Тип ссылки. view (по умолчанию) - ссылка на страницу метки. edit - ссылка на страницу редактирования метки (работает только в административной части).
  'taxonomy'                  => 'post_tag', // Таксономия. По умолчанию: post_tag - метки. Но использовать можно любую стандартную или созданную с помощью register_taxonomy().
  'echo'                      => 1 // Определяет тип вывода: 1 (по умолчанию) - разу вывести результат на экран, 0 - вернуть для последующей обработки в php.
);
wp_tag_cloud( $arg );
?>

Стандартный виджет WordPress — Метки, как и в случае с рубриками, обладает очень скудными настройками (фактически они отсутствуют). Поэтому для облегчения себе жизни используем стороннюю разработку — плагин — Configurable Tag Cloud (CTC). Большинство опций он поддерживает.

Настройки виджета Configurable Tag Cloud

Настройки виджета Configurable Tag Cloud