Содержание:
Рубрики — это важный элемент навигации любого сайта на 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. Он поддерживает почти все вышеперечисленные параметры, но самое главное — вы можете задать произвольный порядок рубрик, что является уникальной и очень востребованной функцией.
Метки классифицируют содержание сайта по частоте использования определенных тем. Вес метки тем больше, чем большему количеству записей эта метка присвоена.
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). Большинство опций он поддерживает.
8 ответов к “Навигация в WordPress ч.II. Рубрики, метки.”
Здравствуйте.
На своем сайте тоже хочу сделать такую же навигацию по рубрикам.
У меня не все статьи видны в рубриках, необходимо чтоб в рубрике можно было переключаться на следующую страницу.
Подскажите как ?
Необходимо установить плагин My Category Order ? (Я его пытался поставить но он выдал ошибку) Или есть другой метод ?
Спасибо.
Если имеется в виду постраничная навигация, тогда вам нужен плагин WP-PageNavi
Наконец то я нашел более полное описание всех возможных вариантов работы с метками и рубриками в WordPress. Как Вы думаете возможно создать дополнительный вид навигации, например классы, чтобы они выполняли такую же функцию как метки или рубрики, и можно было так же просто сортировать записи и интегрировать их в блог или сайт на WordPress. Спасибо.
Извините, забыл. Пожалуйста публикуйте почаще информацию в своем блоге!
Сейчас занимаюсь плугинами для WordPress… писать пока времени мало
Если я правильно понимаю суть вопроса, то такая возможность в WordPress давно уже есть — Custom taxonomies — возможность создать дополнительные таксономии.
Да, Вы правильно поняли. Именно это мне и нужно было. Просто поторопился написать, не использовал правильный запрос для нормального поиска )))). Нашел русский вариант Вашей ссылки: http://dreamhelg.ru/2010/05/intorducing-into-custom-taxonomy-wordpress-3-0/
Могу посоветовать хороший плагин — Custom Post Type UI как раз для этих целей. Можно создавать нестандартные таксономии, типы постов прямо из панели управления WP, очень удобно и не нужно модифицировать шаблон.