Сегодня поговорим о том, как вывести описание рубрики / категории, таксономии wordpress. Хочу предложит вам 2 варианта решения проблемы вывода описания рубрик вордпресс. Для того чтоб выбрать интересующий вас вариант воспользуйтесь навигацией по странице:
В конце каждого из вариантов есть код для вывода описания для таксономий, он немного отличается от рубрик.
Вывод классического описания рубрик wordpress
Достаточно просто активировать вот этот плагин и у вас появится вот такой редактор Tiny для рубрики:
Теперь как решить проблему с описанием в мета теге description ? - для этого можно скачать плагин для СЕО оптимизации, например вот этот: . Более подробно о можно узнать перейдя по ссылке.
Теоретически на этом все, теперь у ваших рубрик / категорий должно отображаться описание на странице.
Вывести класическое описание таксономии wordpress
Проблема с мета description в этом случаи стает ребром и приходится или отключать мета для таксономий или мериться с тем что мета поле и описание теперь общие.
Как вы поняли не самая лучшая ситуация. Я специально решил описать классический вариант первым, чтоб показать насколько все сложно и геморойно. Лично я, уже не вывожу описание рубрики wordpress в такой способ больше года. Рекомендую прочесть второй способ.
Создаем и выводим описание для рубрики wordpress на плагине ACF
Более подробно о том, что такое описано по этой ссылке.
Пошаговая инструкция для отображения произвольного поля описание в рубрике на ACF:
1) Устанавливаем плагин ACF и активируем его.
2) Переходим во вкладку "Произвольные поля"
3) Создаем новый тип полей
4) Вводим название для группы полей и нажимаем "+ добавить поле"
5) В появившемся окне вводим имя поля, имя в ВП (обязательно латиницей без пробелов) и указываем тип поля "Редактор WYSIWYG" (он же ваш TinyMCE). Все как на рисунке:
6) Прокручиваем настройки ниже и в блоке "Местоположение" указываем значения как на следующем рисунке:
7) Поднимаемся в самый верх и нажимаем кнопку "Опубликовать / обновить"
8) Переходим во вкладку "Рубрики"
10) И что мы видем? - у нашей рубрики появилось новое поле (если не появилось стоить нажать ctrl+F5)
11) Записываем в это поле нужный текст.
12) Открываем файл темы от куда выводится наша категория (как узнать где этот файл я описывал в первом примере) и забрасываем вот туда такой простенький код:
13) Нажимаем на кнопку просмотреть и наслаждаемся работой и отображением описания категорий.
Вот так вот легко и просто мы сделали описание рубрики wordpress.
На этом можно закончить, но я обещал что покажу как вывести описание для таксономий wordpress на произвольном поле с редактором TiniMCE.
Смотрим пример выше и делаем все как я в нем описал, только в пункте 6 вам нужно указать вместо слова "Рубрики" имя вашей таксономии. У меня таксономия называется "tmp" по этому получается вот такая картинка в замен той что у п. 6:
И мы можем записать туда текст описание рубрики.
Теперь осталась маленькая правка шаблона, аналог того что мы делали в п. 12. Определяем где выводится наша таксономия, описывал выше в классическом варианте как это делается и закидываем туда вот такой код:
На этом все, ваше описание для таксономий должно отображаться на сайте.
В качестве благодарности можно нажать лайк и распространить этот пост среди своих друзей:
P.S.: Основная цель этого поста показать как можно вывести описание рубрики wordpress стандартным способом и с помощью плагина ACF. Как по мне второй вариант проще и более предпочтительный. Если у вас не получается вывести описание категорий или таксономий wordpress пишите свои вопросы в комментариях, я с радостью на них отвечу.
Добрый день, уважаемые друзья!
Сегодня мы немного поговорим об оформлении страниц рубрик на вашем сайте под управлением WordPress.
Я уверен, что вы что-то примите во внимание из этого материала и непременно сделаете свой сайт лучше.
Принцип оформления страниц рубрик и достоинства
Под оформлением страниц рубрик (категорий) я не имею ввиду красочный фон с изящным шрифтом. Я подразумеваю создание качественной концепции данного типа страниц, то есть понятную структуру для посетителя и поисковых систем.
Если вы перейдете в любую рубрику моего сайта, то сразу поймете, о чем я говорю.
Я предлагаю сделать вывод названия рубрики совместно со статическим текстовым описанием. Можно этого и не делать, но плюсы явно есть, так как мы сайт делаем в первую очередь для посетителей. А именно описание и название помогает посетителю понять, что за контент находится в каждой из категорий и помогает принять решения, изучать ли материалы рубрики или нет.
К тому же, мало кто использует такой вариант оформления, если посмотрите другие сайты на WordPress. Это также некоторое достоинство, так как что-то нестандартное позволяет выйти вперед семимильными шагами.
Итак, предлагаю сделать некий чек-лист достоинств подобного оформления.
Теперь предлагаю рассмотреть каждый элемент оформления страниц рубрик в отдельности, чтобы на выходе вы могли получить примерно такой же вариант, как и у меня.
Вывод названия рубрики WordPress
На самом деле, в большинстве стандартных официальных шаблонов данная функция предусмотрена по умолчанию. У меня же название не выводилось и мне это не очень понравилось. Тем более, что абсолютно каждая страница должна иметь свой заголовок первого уровня в теге H1. А что мы можем разместить в данном теге кроме названия самой рубрики? По факту, ничего толкового.
Странно будет, если поисковик зайдет на данный тип страниц и не увидит ее заголовка. Поэтому, если у вас все еще его нет - обязательно добавляйте.
Чтобы вывести название рубрики на WordPress сайта достаточно в файл, отвечающий за вывод категорий и архивов (category.php - категории и archive.php - архивы), вставить следующий код в нужное место.
"Вы находитесь в рубрике: " ) ; ?> |
Если нет файла category.php, то вполне возможно, что рубрики и архивы выводятся одним файлом archive.php. У меня именно так.
Данный код выведет лишь название, а нам же нужно, что оно было заключено в тег H1. Тогда стоит обернуть его данным тегом. В итоге выйдет следующий вариант.
< h1 class = "archive-title" > "Вы находитесь в рубрике: " ) ; ?> < / h1 > |
Теперь все нормально. Данный код нужно будет разместить в файл (какой, см. выше) в место, примерно перед конструкцией.
|
Данная функция отвечает, что начался цикл вывода анонсов. Именно перед ними мне и нужно было вывести информацию о рубриках.
Если же нужно вывести после списка анонсов, что вполне логично, то нужно разместить данный код после завершения цикла вывода анонсов. За это отвечает функция:
|
Находится она немного ниже в коде. А может и намного ниже. Все зависит от функциональности шаблона. Но, в любом случае, ищите ее ниже и размещайте именно под ней (функцией). Например, вот так:
Если посмотрим на итоговый код вывода названия, то внутри тега H1 имеется класс оформления (class="archive-title"), с помощью которого я задал размер шрифта, цвет, выравнивание и так далее. Если вам не нужно оформление, то можете просто проигнорировать данный класс или же вообще убрать его из тега. Я бы убрал, чтобы сделать код меньше и чище.
Если что, то вот мои стили названия рубрик.
Archive-title { color: #34495e; font-family: arial; font-size: 24px; line-height: 130%; text-align: center; margin: 10px 0px; }
Archive-title { color : #34495e ; font-family : arial ; font-size : 24px ; line-height : 130% ; text-align : center ; margin : 10px 0px ; |
Итак, первую часть мы сделали. Теперь перейдем к выводу описания.
Вывод описания рубрики на WordPress
Перед выводом, необходимо сначала его заполнить. Делается все стандартными средствами движка. Переходим в редактор любой рубрики и в поле "Описание" вводим нужный текст. Можете использовать html теги для его оформления.
Чтобы с тегами было удобно работать, существует плагин Rich Text Tags, который рассмотрим в следующем пункте.
Сохраняете изменения. Если ваша тема поддерживает вывод описания на странице рубрик, то оно уже будет отображаться в должном виде без нужды его оформления, так как в шаблоне оно также предусмотрено.
Если же такового нет, то придется самим вывести описание рубрик. Обращаемся все к тем же файлам вывода категорий и архивов и ниже кода вывода названия вставляем следующую функцию.
|
Все. Описание будет отображаться. В принципе, все дело сделано. Но возможен еще один момент, который вам придется сделать.
У меня, например, в шаблоне простой код описание то вывел, но из-за его вывода сместился сайдбар (боковая колонка), так как описание растянулось на всю ширину сайта. Для этого мне пришлось заключить название и описание в отдельный блок и придать ему нужное оформление (ширину, фон и левую бардюру серого цвета).
На практике это выглядит следующим образом.
< div class = "category-desc" > < h1 class = "archive-title" > "Вы находитесь в рубрике: " ) ; ?> < / h1 > < / div > |
Как видим, имеется блок с классом "category-desc", которому назначены соответствующие стили для ширины блока, чтобы боковая колонка не смещалась. Также добавил белый фон, так как простой код выводил описание на общем фоне сайта, а нужно было его вписать в общую ауру оформления.
Вот стили общего блока.
Category-desc { background: #f1f4f5; border-left: #BDC3C7 4px solid; width: 675px; font-weight: 600; padding-bottom: 10px; margin-top: 0px; margin-bottom: 10px; padding-top: 10px; padding-right: 20px; padding-left: 20px; background: #ffffff; }
Category-desc { background : #f1f4f5 ; border-left : #BDC3C7 4px solid ; width : 675px ; font-weight : 600 ; #ffffff ; |
Возможно, что вам данные стили не потребуются. Все зависит от того, в какое место вы разместите вывод названия и описания рубрик и от структуры шаблона.
Как вы уже поняли, я разместил в самом верху страницы перед всем список материалов (анонсов) рубрик. В принципе это нормально. Посетитель заходит и сразу видит концепцию сайта, которая помогает ему определиться с его структурой и принципом подачи контента.
Но имеется обратная сторона. Когда посетитель заходит в категорию, первым делом он жаждет получить именно материалы по теме рубрики. А в итоге он получает статический текст о самой рубрике. Это может помешать пользователю углубиться в другие материалы, так как он сразу не получит к ним доступ. С этой стороны - ошибка.
Поэтому, имеется вариант размещать информацию о рубрике именно в низу страницы после списка анонсов, чтобы пользователь сразу получил ожидаемый список контента и смог углубиться, открыв большое количество записей. Последнее стоит в приоритете, так как улучшается поведенческий фактор "Глубина просмотров в рамках одной сессии".
Но опять же, тут все зависит от конкретного пользователя и самого сайта. У себя я не увидел помех для доступа к списку анонсов при размещении статического текста в верхушке страницы. Все работает отлично.
В любом случае, действовать наугад нельзя. Попробуйте оба варианта и проанализируйте поведение пользователей на данном типе страниц в каждом из вариантов размещения статической информации. Что сработает лучше, то и оставляйте.
Теперь пару советов:
- Если разместите сверху, то текст слишком большим не делайте, чтобы основной контент (список материалов) не отдалять от посетителя. Вполне хватит 400-500 символов с описанием общей концепции рубрик;
- В описании можете разместить красивую картинку небольшого размера, ибо простой текст не привлекает внимания;
- Можете сделать ссылки на самые горячие и важные для продвижения страницы, которые непременно в этом нуждаются и помогут посетителю решить проблему или узнать что-то новое;
- Не стоит в тексте размещать большое количество ключевых слов, пытаясь продвинуть рубрику. Описание должно давать понятие посетителю о категории. Упор именно на посетителя. Но, если решим поднять шансы на получения трафика из ПС, то можно вписать ключевое слово в читабельной форме не в ущерб самому описанию. Также в этом случае необходимо заполнить все мета-теги для рубрик (title, desription и keywords), а это позволяют не все . Более подробно о последнем моменте читайте по предыдущей ссылке.
Тут все. Теперь о последнем моменте, который позволит вам оформить текст в описании очень просто.
Расширенное оформление с помощью Rich Text Tags
Данный плагин добавляет к стандартному полю описания рубрик панель форматирования, где мы можем оформлять текст точно также, как и в редакторе записей. Это очень удобно, учитывая то, что можно оформить текст достаточно быстро и и просто, а затем деактивировать плагин, так как стандартное поле описания категорий понимает все html теги и будет и отображать их на страницах в готовом виде для посетителя.
Таким образом, активировали плагин, красиво оформили и выключили, а описание отображается в оформленном виде. Без плагина же пришлось бы вписывать все теги в ручном режиме. Согласитесь, довольно неудобно.
Итак, скачать плагин Rich Text Tags можно с официальной страницы . После его установки и активации стандартное поле "Описание", заменится на другое решение, где будет полноценная панель форматирования.
Вы сможете работать, как в визуальном редакторе, так и текстовом (HTML режиме). После оформления отключаете плагин и снова станет доступно стандартное поле от движка. Вместо самого оформления в поле описания вы увидите набор html тегов. Но на самых страницах оформление будет отображаться должным образом.
Очень удобное решение, если вы хотите сделать не просто текст, а реально помочь посетителю, сделав для него мини-пояснение к данной рубрике в виде списков на самые лучшие материалы и так далее. Тут уже на ваше усмотрение.
На этом в общем-то и все. Надеюсь, что материал показался полезным для вас. Ничего в этом сверхъестественного нет, но достоинства такого оформления должны вам приглянуться, так как плюсы явно очевидны.
В заключение записал для вас видео по данному материалу. Надеюсь, что оно до конца раскроет тему статьи. Приятного просмотра.
Если остались какие-то вопросы, то комментарии ниже. Также не забывайте делиться материалом со своими друзьями и жмите на звездочки ниже. До связи.
С уважением, Константин Хмелев!
Рубрики WordPress это элемент таксономии сайта, улучшающие его организацию материалов и навигацию по сайту. Создаются рубрики WordPress администратором сайта. По структуре они могут иметь древовидное построение с произвольной глубиной вложенности дочерних рубрик.
Смысл создания рубрик сайта и присоединения каждой статьи к отдельной рубрике в улучшении навигации сайта для пользователей и повышение релевантности (предпочтения) сайта в поисковой выдаче, у поисковых роботов. Есть мнение, что поисковики «любят» строго организованные документы с иерархической структурой подчинения, так как это позволяет им проще обходить сайты при сканировании.
Важно! В системе WordPress, в отличие от других систем, стало возможным одну статью прикрепить к нескольким рубрикам. Такой приём увеличивает , хотя система назначает основную и вторичную рубрики статьи.
Управление рубриками WordPress
Форма добавления рубрики довольно простая. Стоит обратить внимание на «Ярлык» для рубрики. Ярлык рубрики будет отражаться в URL статей и рубрик. Если вы не заполните ярлык, система сформирует его самостоятельно. Если вы используете плагины транслитерации, ярлык будет переведен автоматом. Можно вписать ярлык рубрики самостоятельно. Ярлык, на сайте, как и название, раздела, должен быть уникальным. При использовании одинаковых ярлыков, система автоматом добавит к ним цифру через дефис.
Описание раздела, не обязательно, но для оптимизации, желателен. Описание должно быть небольшим, знаков 160-165 и уникальным в пределах сайта и Интернет. Некоторые темы показывают описание рубрик на сайте при открытии архива рубрик. Как красиво оформить страницу рубрик читать в статье .
Возвращает
false/строку. HTML код если echo=1 . Если echo=0 вернет HTML код в переменную для дальнейшей обработки.
Использование
Шаблон использования
$args = array("show_option_all" => "", "show_option_none" => __("No categories"), "orderby" => "name", "order" => "ASC", "style" => "list", "show_count" => 0, "hide_empty" => 1, "use_desc_for_title" => 1, "child_of" => 0, "feed" => "", "feed_type" => "", "feed_image" => "", "exclude" => "", "exclude_tree" => "", "include" => "", "hierarchical" => true, "title_li" => __("Categories"), "number" => NULL, "echo" => 1, "depth" => 0, "current_category" => 0, "pad_counts" => 0, "taxonomy" => "category", "walker" => "Walker_Category", "hide_title_if_empty" => false, "separator" => "",); echo "
- ";
wp_list_categories($args);
echo "
Аргументы передаваемые параметру $args
child_of(число) Показать дочерние категории. В параметре указывается ID родительской категории (категория, вложенные категории которой нужно показать). current_category(строка/массив)В нормальном режиме такой класс добавляется к текущей категории на странице категорий. Этот параметр нужен, чтобы, например, добавить этот класс на отдельных страницах, которые не относятся к текущей категории.
С версии 4.4. в этот параметр можно передавать массив ID.
По умолчанию: ""
Depth(число)
Этот параметр контролирует глубину вложенности категорий, которые будут показаны. По умолчанию 0 - показывать все уровни вложенности (все дочерние категорий). С версии 2.5.
- 0 - все уровни вложенности (По умолчанию);
- -1 - показать все дочерние категории, но без вложенности li списков. Отменяет параметр hierarchical ;
- 1 - показать только категории первого уровня (все виды вложенных категорий не будут показываться);
- n - число - глубина вложенности которую нужно показывать. 2 - покажет категорий первого и второго уровня.
Выводить на экран или возвращать для обработки.
- 1 (true) - да, выводить на экран;
- 0 (false) - нет, просто возвратить данные.
По умолчанию: true
Exclude(строка)
- Если этот параметр указан, параметр child_of будет отменен.
- Если параметр heiararchical=true , то будет исключаться вся ветка. Если heiararchical=false , то для исключения ветки используйте параметр exclude_tree .
По умолчанию: ""
Exclude_tree(строка)
Исключить дерево категорий из списка. Указывайте ID категорий через запятую. Параметр include должен быть пустым. Если параметр heirarchical=true , то используйте exclude вместо exclude_tree .
По умолчанию: ""
include(строка)
Вывести списком только указанные категории. Указывать нужно ID категорий через запятую.
По умолчанию: ""
hide_empty(логический)
- 0 (false) - показывать пустые (не скрывать);
- 1 (true) - не показывать пустые категории (скрывать).
По умолчанию: 1
Hide_title_if_empty(логический)
Нужно ли прятать $title_li если в списке нет элементов. С версии 4.4.
По умолчанию: false (всегда будет показываться)
hierarchical(логический)
- 1 (true) - да, древовидный тип отображения;
- 0 (false) - нет, показать сплошным типом.
По умолчанию: true
Order(строка)
Направление сортировки:
- ASC - по порядку, от меньшего к большему (1, 2, 3; a, b, c);
- DESC - в обратном порядке, от большего к меньшему (3, 2, 1; c, b, a).
По умолчанию: "ASC"
Orderby(строка)
Сортировка списка по определенным критериям. Например по количеству постов в каждой категории или по названию категорий. Доступны следующие критерии:
- ID - сортировка по ID;
- name - сортировка по названию (по умолчанию);
- slug - сортировка по алт. имени (slug);
- count - по количеству записей в категории;
- term_group - по группе.
По умолчанию: "name"
Separator(строка)
Разделитель между элементами. С версии 4.4.
По умолчанию: "
"
show_count(логический)
Показывать/нет количество записей в категории. Число записей будет показано после названия категории в скобках (например, Психология (16)).
- 1 (true) - показывать количество записей;
- 0 (false) - не показывать количество записей.
Текст для отображения всех категорий.
Если передать не пустую строку, например "Все категории" , то в список будет добавлена ссылка на все категории (часто это ссылка на главную страницу блога). Текстом ссылки станет текст переданный параметру, в данном случае Все категории.
По умолчанию: ""
Show_option_none(строка)
Если функция не нашла ни одной категории для показа, то будет показан этот текст.
По умолчанию: "Нет рубрик"
style(строка)
Стиль вывода списка.
- list - означает, что нужно выводить списком в теге
- , вложенность категорий будет соблюдена.
- none - будут выведены только ссылки на категории () разделенные тегом
.
По умолчанию: "list"
Taxonomy(строка)
Название таксономии, которую нужно обрабатывать.
По умолчанию: "category"
title_li(строка)
Установить заголовок списка. Если изменить этот параметр на "" (title_li=), то заголовок не будет выводиться вовсе.
По умолчанию: "Категории"
use_desc_for_title(логический)
#2 Сортировка по названию
Следующий пример сортирует категории по названию (orderby=name), показывает количество записей в каждой категории (show_count=1) и исключает из списка категорию с ID 10 (exclude=10):
#3 Уберем заголовок списка категорий
С помощью обнуления параметра title_li . По умолчанию этот параметр равен __("Categories") , если установить его в null или "" , заголовок списка не будет показан вообще. Следующий пример исключает категории 4 и 7, и убирает заголовок списка категорий:
#4 Выводим только указанные рубрики
Этот пример покажет список только из категорий с ID 9, 5 и 23, и изменит заголовок списка на Поэзия, который будет заключен в теги
:
-
" . __("Poetry") . ""); ?>
#5 Выведем только дочерние категории
Для того, чтобы вывести только категории вложенные в категорию 8 (child_of=8) и отсортировать их по ID (orderby=id), так же показать количество записей в каждой категории (show_count=1) и убрать из атрибута title описание категорий (use_desc_for_title=0) используйте следующий вызов функции wp_list_categories:
#6 Удалим скобки, в которые обрамляется количество записей в каждой категории
Для этого получим список категорий в переменную (echo=0) и пропустим её через php функцию str_replace() , которая удалит скобки:
Категории"); $cats = str_replace(["(",")"], "", $cats); echo $cats; ?>
#7 Покажем список категорий со ссылкой на RSS-ленту
Для этого используем параметр feed=RSS , так же в этом примере список будет отсортирован по названию категорий (orderby=name) и у каждой категории будет показано количество записей (show_count=1):
#7.1 Если нужно показать ссылку-картинку вместо текста ссылки RSS фида, то используем параметр feed_image:
#8 Выводим список произвольной (пользовательской) таксономии
С версии 3.0 стало возможно выводить списки произвольных таксономий через параметр taxonomy . Так же в этом примере показывается как передавать параметры не строкой, а массивом:
"genre", // название таксономии "orderby" => "name", // сортируем по названиям "show_count" => 0, // не показываем количество записей "pad_counts" => 0, // не показываем количество записей у родителей "hierarchical" => 1, // древовидное представление "title_li" => "" // список без заголовка); ?>
#9 CSS классы для стилизации li списка
CSS Классы создается автоматически функцией wp_list_categories() . Начальное обрамление (в тег ul) задается произвольно, поэтому класс списку можно задать произвольный. А для li тега используются следующие css классы:
Li.categories { ... } /* общий селектор */ li.cat-item { ... } li.cat-item-7 { ... } /* Рубрика с ID 7 */ li.current-cat { ... } li.current-cat-parent { ... } ul.children { ... }
Заметки
Добавленные параметры в разных версиях:
- 2.3.0 - echo
- 2.5.0 - depth
- 2.6.0 - current_category
- 2.7.1 - exclude_tree
- 2.9 - pad_counts
- 3.0 - taxonomy
- 4.4 - hide_title_if_empty и separator . current_category стал не обязательным
Список изменений
С версии 2.1.0 | Введена. |
С версии 4.4.0 | Introduced the hide_title_if_empty and separator arguments. The current_category argument was modified to optionally accept an array of values. |
Код wp list categories : wp-includes/category-template.php WP 5.2.2
0, "current_category" => 0, "depth" => 0, "echo" => 1, "exclude" => "", "exclude_tree" => "", "feed" => "", "feed_image" => "", "feed_type" => "", "hide_empty" => 1, "hide_title_if_empty" => false, "hierarchical" => true, "order" => "ASC", "orderby" => "name", "separator" => "", "show_count" => 0, "show_option_all" => "", "show_option_none" => __("No categories"), "style" => "list", "taxonomy" => "category", "title_li" => __("Categories"), "use_desc_for_title" => 1,); $r = wp_parse_args($args, $defaults); if (! isset($r["pad_counts"]) && $r["show_count"] && $r["hierarchical"]) { $r["pad_counts"] = true; } // Descendants of exclusions should be excluded too. if (true == $r["hierarchical"]) { $exclude_tree = array(); if ($r["exclude_tree"]) { $exclude_tree = array_merge($exclude_tree, wp_parse_id_list($r["exclude_tree"])); } if ($r["exclude"]) { $exclude_tree = array_merge($exclude_tree, wp_parse_id_list($r["exclude"])); } $r["exclude_tree"] = $exclude_tree; $r["exclude"] = ""; } if (! isset($r["class"])) { $r["class"] = ("category" == $r["taxonomy"]) ? "categories" : $r["taxonomy"]; } if (! taxonomy_exists($r["taxonomy"])) { return false; } $show_option_all = $r["show_option_all"]; $show_option_none = $r["show_option_none"]; $categories = get_categories($r); $output = ""; if ($r["title_li"] && "list" == $r["style"] && (! empty($categories) || ! $r["hide_title_if_empty"])) { $output = "
- ";
}
if (empty($categories)) {
if (! empty($show_option_none)) {
if ("list" == $r["style"]) {
$output .= "
- " . $show_option_none . " "; } else { $output .= $show_option_none; } } } else { if (! empty($show_option_all)) { $posts_page = ""; // For taxonomies that belong only to custom post types, point to a valid archive. $taxonomy_object = get_taxonomy($r["taxonomy"]); if (! in_array("post", $taxonomy_object->object_type) && ! in_array("page", $taxonomy_object->object_type)) { foreach ($taxonomy_object->object_type as $object_type) { $_object_type = get_post_type_object($object_type); // Grab the first one. if (! empty($_object_type->has_archive)) { $posts_page = get_post_type_archive_link($object_type); break; } } } // Fallback for the "All" link is the posts page. if (! $posts_page) { if ("page" == get_option("show_on_front") && get_option("page_for_posts")) { $posts_page = get_permalink(get_option("page_for_posts")); } else { $posts_page = home_url("/"); } } $posts_page = esc_url($posts_page); if ("list" == $r["style"]) { $output .= "
- $show_option_all "; } else { $output .= "$show_option_all"; } } if (empty($r["current_category"]) && (is_category() || is_tax() || is_tag())) { $current_term_object = get_queried_object(); if ($current_term_object && $r["taxonomy"] === $current_term_object->taxonomy) { $r["current_category"] = get_queried_object_id(); } } if ($r["hierarchical"]) { $depth = $r["depth"]; } else { $depth = -1; // Flat. } $output .= walk_category_tree($categories, $depth, $r); } if ($r["title_li"] && "list" == $r["style"] && (! empty($categories) || ! $r["hide_title_if_empty"])) { $output .= "