Как вывести все посты таксономии

Содержание
  1. Архивы таксономии: Вывод списка постов по терминам таксономии
  2. Что вы будете создавать
  3. Что вам потребуется
  4. 1. Приступаем к работе: регистрация типа записи и таксономии
  5. 2. Настройка шаблона архива
  6. 3. Заполнение шаблона архива: выборка терминов таксономии
  7. 4. Заполнение шаблона архива: определение запроса
  8. 5. Заполнение шаблона архива: добавление цикла
  9. Весь цикл
  10. get_the_taxonomies() WP 2.5.0
  11. Возвращает
  12. Использование
  13. Примеры
  14. #1 Демонстрация работы для обычного поста
  15. #2 Демонстрация работы для типа записи с таксономиями
  16. #3 Изменим формат вывода
  17. get_terms() – функция для вывода элементов таксономий
  18. Пример. Выводим отсортированные по имени рубрики в виде выпадающего списка
  19. Синтаксис
  20. Параметры массива $args
  21. Возвращаемые значения
  22. Выводим список из 5-и рубрик, отсортированных по количеству записей
  23. the_taxonomies() WP 2.5.0
  24. Возвращает
  25. Использование
  26. Аргументы параметра $args
  27. Примеры
  28. #1 Демонстрация вывода
  29. #2 Демонстрация вывода для произвольных таксономий
  30. #3 Выведем список «обвернув» его в тег
  31. Список изменений
  32. Код the_taxonomies() the taxonomies WP 5.8.1
  33. Cвязанные функции
  34. Для записей
  35. Таксономии: рубрики, метки, .

Архивы таксономии: Вывод списка постов по терминам таксономии

Что вы будете создавать

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

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

Таким образом, вместо одного длинного списка посетители будут видеть список по каждому термину таксономии.

Что вам потребуется

Для работы с этой статьей вам понадобится установленная и настроенная система WordPress и редактор кода. Вы будете создавать тему, которая является дочерней для темы twentyfourteen , так что вам нужно ее установить (она является темой WordPress по умолчанию).

Читайте также:  Чем можно вывести вирусные бородавки

Я не буду показывать вам, как создается дочерняя тема, но если это для вас проблема, просто взгляните на таблицу стилей в подборке кодов для этой статьи.

1. Приступаем к работе: регистрация типа записи и таксономии

По моему опыту эта техника используется чаще для записей пользовательского типа и таксономии, чем для стандартных записей и категорий или тегов, так что я начну с регистрации типа записи и таксономии.

Примечание: Я использую тот же тип записей ‘animal’, который я зарегистрировала в предыдущей статье по созданию иллюстрированных архивов. Если вы захотите создать более продвинутый набор инструментов, вы можете объединить технику, описанную в той статье, с техникой, которую я покажу вам здесь, и выводить списки терминов таксономии на своем сайте с характерными изображениями.

В файл функций вашей темы добавьте следующий код, чтобы зарегистрировать тип записей:

Затем добавьте код для регистрации таксономии:

После того, как вы это сделали, добавьте в эти разделы некоторые данные. Ниже вы можете видеть данные, которые я добавила для применяемых терминов таксономии.

Я не особо забочусь о достоверности моих данных, в частности принадлежности некоторых животных к определенным семействам, поэтому, пожалуйста, не пишите в комментариях, что у меня что-то неправильно!

2. Настройка шаблона архива

Следующий шаг заключается в создании шаблона архива для нового типа записей. В вашей теме создайте новый файл под названием archive-animal.php .

Так как эта тема является дочерней для темы twentyfourteen , для шаблона архива потребуется код, скопированный из этой темы в качестве оболочки для пользовательского цикла, который вы собираетесь создать.

Так что добавьте в шаблон архива следующие строки:

Примечание: Если вы работаете с собственной темой, скопируйте код оболочки из индексного файла или файла архива темы.

3. Заполнение шаблона архива: выборка терминов таксономии

Так как в архиве могут выводиться животные по терминам таксономии, следующим шагом, будет выборка этих терминов.

В вашем новом файле шаблона, ниже закрывающегося тега (или ниже открывающей части кода оболочки, если вы используете собственную тему), введите термины, используя get_terms() :

Обратите внимание, что я использовала здесь два параметра:

  • orderby — позволяет указать порядок отображения терминов. Я использовала значение count , так что термин с наибольшим количеством переданных ему записей будет отображаться первым, но вы можете задать порядок сортировки по имени или ID — если оставить это поле пустым, WordPress будет выдавать значения по имени. Для более подробной информации ознакомьтесь с разделом кодекса по get_terms() ;
  • hide_empty — указывает WordPress не выбирать термины, без назначенных им записей. При этом если вы позже зададите тот же запрос, будет осуществляться проверка, не появились ли новые записи.

4. Заполнение шаблона архива: определение запроса

Сделав это, вы используете foreach() , чтобы указать WordPress перебрать каждый из этих терминов и выполнить запрос, который необходимо определить.

Ниже кода, который вы только что добавили, вставьте следующие строки:

Это указывает WordPress перебрать каждый термин, а затем определить запрос — он должен запускаться каждый раз. Аргументы для запроса включают тип записей и термин в таксономии ‘animal_cat’ , который является значением переменной $term .

5. Заполнение шаблона архива: добавление цикла

Определив запрос, вам нужно добавить цикл. Сначала добавляется вывод в качестве заголовка названия запрашиваемого термина. Ниже строки, которая начинается с $query , но внутри фигурных скобок оператора foreach добавьте эту строку:

Затем добавьте код, чтобы выводить записи списком:

Как вы можете видеть, это просто цикл, который выводит название каждого поста внутри ссылки на запись, и не выводит выдержки. Если хотите, вы можете добавить здесь выдержку или характерное изображение.

И в конце ниже строки, считывающей echo ‘

’;, сбрасывается запрос с помощью wp_reset_postdata() .

Весь цикл

Вот, как теперь будет выглядеть запрос и цикл:

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

Источник

get_the_taxonomies() WP 2.5.0

Получает все элементы всех таксономий связанных с записью. Получает массив HTML ссылок.

Получит таксономии в виде массива в значениях которого будут перечислены ссылки на термины, в которых находится указанная запись.

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

Работает с постами, новыми типами записей и с произвольными таксономиями — полный комплект.

Используйте обертку этой функции — the_taxonomies(), чтобы получить результат готовую строку для вывода на экран, а не массив.

Возвращает

Массив . Список таксономий, где ключ массива — это ярлык таксономии, а значение — это список элементов таксономии.

Использование

Параметры по которым нужно выводить (форматировать вывод) список таксономий. Может быть:

template(строка)
Шаблон вывода списка. Где %s — название таксономии, а %l — список элементов в формате указанном в параметре $term_template .
По умолчанию: ‘%s: %l.’

  • term_template(строка)
    Формат вывода каждого элемента таксономии в списке. По умолчанию название термина, как ссылка на архив записей термина.
    По умолчанию: ‘%2$s’ ,
  • По умолчанию: array()

    Примеры

    #1 Демонстрация работы для обычного поста

    #2 Демонстрация работы для типа записи с таксономиями

    #3 Изменим формат вывода

    Чтобы изменить формат вывода, нужно указать параметры:

    Источник

    get_terms() – функция для вывода элементов таксономий

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

    Короче говоря вы можете вывести в любом виде рубрики с блога, метки, а также таксономии, созданные вами . Если же надо получить текущий элемент таксономии, то воспользуйтесь функциями get_query_var() (co значением параметра равным term — так вы получите ярлык текущего элемента таксономии) и get_term_by() (со значением первого параметра равным slug ).

    Пример. Выводим отсортированные по имени рубрики в виде выпадающего списка

    Приведу сразу же несложный пример с кучей комментов, иначе, как мне кажется, если я начну с документации функции, то некоторым будет непонятно, как её использовать.

    Вот что у меня получилось в результате выполнения этого кода на тестовом сайте:

    Слева — сам список (открытый), а справа его HTML-код.

    Синтаксис

    $args
    (строка|массив) параметры по типу, как в WP_Query, их тоже можно записать и в виде массива и в виде строки.

    Параметры массива $args

    taxonomy
    (строка|массив) название таксономии или массив таксономий, например array( ‘category’, ‘post_tag’ ) .

    number
    (целое число) количество элементов, которые нужно вывести, по умолчанию выводятся все.

    offset
    (целое число) сколько элементов нужно пропустить, то есть если offset=2 , то начинаем с третьего.

    include
    (целое число|строка|массив) укажите ID элементов, которые нужно вывести, можно указать число, числа через запятую в виде строки или одномерный массив чисел, например так:

    Если вы хотите исключить какие-то элементы, не пытайтесь использовать минус перед числом, просто смотрите следующий параметр.

    exclude
    (целое число|строка|массив) укажите ID элементов, которые нужно исключить.

    exclude_tree
    (целое число|строка|массив) если вы исключате родительские элементы и хотите сразу же исключить все дочерние, то этот параметр для вас.

    orderby
    (строка) сортировать по:

    • id — по ID элементов (по умолчанию),
    • count — по количеству постов,
    • name — по имени,
    • slug — по ярлыку,
    • term_group — по значениям колонки term_group в таблице wp_terms базы данных,
    • include — в том же порядке, в котором указаны элементы в параметре include,
    • meta_value и meta_value_num – по значению произвольного поля,
    • none — без сортировки;

    order
    (строка) порядок сортировки.

    • ASC — по возрастанию (по умолчанию),
    • DESC — по убыванию;

    hide_empty
    (логическое) нужно ли добавлять в результат также и пустые (без постов) рубрики/метки/элементы таксономий:

    • true — не нужно (по умолчанию),
    • false — нужно;

    fields
    (строка) в каком виде выводить результат:

      all — массив объектов элементов таксономий (по умолчанию), после print_r() он будет выглядеть так:

    slug
    (строка) возвращает элементы, ярлыки которых совпадают с заданным значением.

    hierarchical
    (логическое) нужно ли включить в результат родительские элементы, даже если в них нет постов?

    • 1 — нужно (по умолчанию),
    • 0 — не нужно;

    name__like
    (строка) возвращает только те элементы, названия которых начинаются с заданного значения (без чувствительности в регистру), например:

    search
    (строка) возвращает только те элементы, названия которых содержат заданное значение (без чувствительности в регистру).

    pad_counts
    (логическое) влияет только на числовые значения количества постов в родительских элементах.

    • 1 — количество постов родительского элемента суммируется с количеством постов дочерних элементов,
    • 0 — не суммируется (по умолчанию);

    get
    (строка)

    • all — вывести все элементы, вне зависимости от параметров offset , hide_empty , child_of (по умолчанию — пустая строка)

    child_of
    (целое число) вывести все элементы таксономии, которые являются дочерними для элемента с указанным ID вне зависимости от уровня вложенности.

    parent
    (целое число) вывести элементы таксономии, которые являются дочерними для элемента с указанным ID и находятся на первом уровне вложенности. Если указать 0, то будут выведены только элементы верхнего уровня.

    meta_key
    (строка) Укажите это значение ключа мета поля, если хотите получить только элементы таксономи, содержащие его.

    meta_value
    (строка) Значение мета поля элементов таксономии для указанного ключа meta_key .

    meta_query
    (массив) Работает так же, как и meta_query в WP_Query при выводе постов. О нём даже есть отдельный урок.

    cache_domain
    (строка) (с версии 3.2) если вы планируете использовать get_terms с указанными параметрами несколько раз, укажите в качестве значения cache_domain уникальную фразу, чтобы задействовать кэш (по умолчанию — «core»).

    Возвращаемые значения

    Если параметр fields не изменен, то функция возвращает массив объектов, каждый из которых содержит следующую информацию об элементе таксономии.

    • term_id — ID рубрики/метки/элемента таксономии
    • name — название
    • slug — ярлык
    • term_group — значение term_group из базы данных (особого применения пока что нет, в основном — в плагинах)
    • term_taxonomy_id — ID таксономии
    • taxonomy — название таксономии
    • description — описание элемента (можно заполнить в админке при создании и редактировании)
    • parent — ID родительского элемента
    • count — количество записей

    Выводим список из 5-и рубрик, отсортированных по количеству записей

    В этом примере параметры функции задаются в виде массива:

    Тот же самый пример, но только с заданными в виде строки параметрами:

    Источник

    the_taxonomies() WP 2.5.0

    Выводит ссылки на термины поста. Используется внутри Цикла WordPress

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

    Возвращает

    null . Выводит на экран список ссылок на элементы таксономии (термины), текущего поста.

    Использование

    Аргументы параметра $args

    Примеры

    #1 Демонстрация вывода

    Пример вывода для обычных постов, которые прикрепляются к рубрикам и меткам.

    #2 Демонстрация вывода для произвольных таксономий

    #3 Выведем список «обвернув» его в тег

    Список изменений

    Код the_taxonomies() the taxonomies WP 5.8.1

    Cвязанные функции

    Для записей

    Таксономии: рубрики, метки, .

    Привет, подскажи пожалуйста:
    есть кастомный тип постов, представляет из себя текст песни, принадлежащий двум кастомным таксономиям Artist и Album.
    Задача состоит в том, чтобы вывести на странице taxonomy-artist.php все посты(в виде ссылок разумеется), принадлежащие Artist и разложенные по Album.
    Иными словами на странице должны быть название Альбома и принадлежащие ему посты текстов песен:

    • Текст песни 1
    • Текст песни 2
      ..
    • Текст песни 10
    • Текст песни 1
    • Текст песни 2
      ..
    • Текст песни 10

    Не нашёл подходящей функции. Как реализовать?

    Источник

    Оцените статью