get_term_by() — возвращает элемент таксономии (в виде объекта или массива) по его ID, названию или ярлыку
На самом деле это просто «более расширеная версия» функции get_term(). Там я описал всё очень подробно, поэтому, если тут что-то будет непонятно, советую почитать.
Примеры
Большинство примеров приведено именно для таксономии рубрик (т.е. category ), но все они работают и для других таксономий.
Как узнать название элемента таксономии, зная его ID
Итак, значит в этом примере получаем название конкретной категории товаров с >
Как получить ID родительской рубрики
Тут может быть три варианта. Вариант первый — знаем только ID дочерней рубрики:
Вариант два — известно название дочерней рубрики:
Обратите внимание на очевидное — примеры на получение родительского элемента сгодятся только для таксономий с иерархией.
Как узнать ID рубрики по названию
Получение объекта рубрики по ее ярлыку
Еще одна функция, частью которой является get_term_by() — это get_category_by_slug(). Код ниже и есть аналог действия этой функции:
Определение общего количества постов в рубрике
На самом деле я тут написал очень много лишних примеров, все их и многие другие можно легко вывести самому, зная параметры возвращаемого объекта.
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!
get_the_terms() WP 2.5.0
Получает элементы таксономии (термины), которые относятся к указанному посту (записи).
Эта функция может быть использована внутри Цикла WordPress. Или ей нужно передать ID поста, элементы таксономии которого нужно получить.
Хуки из функции
Возвращает
Использование
Примеры
#1. Выведем ссылки на элементы таксономии ‘my_tax’, относящиеся к посту 10
Тоже самое можно сделать внутри Цикла WordPress:
#2. Получим только первый термин
Допустим, мы получили термины записи и нам нужно взять данные только одного термина (элемента таксономии). Но функция возвращает массив объектов (терминов). Пример ниже показывает как вытащить первый термин из массива.
#3. Получает термин верхнего уровня, для указанного или текущего поста в цикле
Это отдельная функция на базе get_the_terms()
Список изменений
Код get_the_terms() get the terms WP 5.8.1
Cвязанные функции
term (термины таксономий)
Для записей
У вас на сервере старая версия PHP, вообще такая конструкция работает.
Можно еще так вытаскивать первый элемент массива, если индекс не известен:
Спасибо, за ответ. Вообще у меня 5.4, то есть не старая. Или 5.5 для этого надо?
Спасибо Kama! А можно каким-то образом исключить из цикла foreach термины верхнего уровня используя ID. У меня в таксономии иерархическая структура терминов.
Буду признателен за любую наводящую информацию.
WordPress.org
Русский
Поддержка → Проблемы и решения → Получить id записей кастомной таксономии
Получить id записей кастомной таксономии
Как получить массив IDшников постов из кастомной таксономии?
get_terms получает термины, а не записи.
полагаю, что если вам надо получить все записи всех терминов определенной таксономии — то сначала через get_terms надо получить все термины таксономии, а потом уже получать все записи всех найденных терминов.
решений много — https://stackoverflow.com/questions/3354272/get-all-posts-from-custom-taxonomy-in-wordpress
если вам надо получить все записи всех терминов
Нет, записи не нужны. Мне надо получить только ID всех постов из одной кастомной таксономии. Причем всех статусов, а не только опубликованных.
Сейчас пытаюсь сделать это через WP_Query, но пока тоже не получается.
еще раз повторю.
нельзя получить ни записи, ни их ID по таксономии.
только по терминам этой таксономии.
а значит сначала надо получить ID всех терминов этой таксономии — а потом WP_Query с выборкой по терминам таксономии.
Как получить массив IDшников постов из кастомной таксономии?
А зная тип, можно легко получить массив всех IDов записей нужного типа
WP_Query с выборкой по терминам таксономии.
Вот это я вчера пытался сделать и затык был именно на
//тут засовываем в массив ID записей через get_the_ID()
Названия и ссылки я получал, а вот как получить ID так вчера и не сообразил. Попробую ещё сегодня повоевать.
А зная тип, можно легко получить массив всех IDов записей нужного типа
Спасибо.
Использовать wpdb я как-то сторонюсь, хотя возможно что в данном случае оно будет и лучше.
хотя возможно что в данном случае оно будет и лучше.
Практически во всех нестандартных случаях специально сконструированный запрос будет эффективнее. Да и в некоторых стандартных, кстати, тоже. Универсальность и эффективность — антагонисты.
А зная тип, можно легко получить массив всех IDов записей нужного типа
А вообще это не то — мне надо получить ID не по типу поста, а по одному терму таксономии. Прощу прощения если не внятно объяснил задачу.
Если это не будет сильно нагло с моей стороны — я правильно составил запрос?
$termsid — ID терма таксономии, который я предварительно получу.
Нет. term_id и term_taxonomy_id — разные IDы, хотя их значения и совпадают в подавляющем большинстве случаев.
Я впопыхах выше не правильно написал.
$termsid — это ID таксономии, который я предварительно получу.
ID терминов — это как раз то, что нужно получить.
То есть, Вы хотите сравнивать id терма с id таксономии? Круто.
ID терминов — это как раз то, что нужно получить.
Всё, достаточно, я самоизолюруюсь. Извините.
Да я ж не знаю как составить запрос, чтобы получить все ID из object_id при определенном значении в term_taxonomy_id
Это выборка из таблицы wp_term_relationships
Помогите если не трудно.
Вот сейчас проверил запрос
Теперь осталось разобраться с сортировкой.
Всё, достаточно, я самоизолюруюсь. Извините.
Как получить текущую таксономию у WordPress с помощью get_term_by()
Лайфхаки для Windows. Все самое интересное
Что б получить текущую таксономию у WordPress нужно выполнить текущий код
Переменная Taxonomy при этом будет содержать что то подобное
Здесь видно, что WP_Term Object это объект, по этому достать свойства можно так
$field (строка) (обязательный)
Каким видом массива возвращать данные:
По умолчанию: OBJECT
Тип фильтрации. Одно из значений:
Получает указанный элемент таксономию (термин). Данные можно получить, указав: имя, ярлык или ID элемента таксономии.
Также рекомендую книгу для разработчиков, где все подробно расписано
WordPress для профессионалов. Разработка и дизайн сайтов
Понравилась статья или книга? Поделись с друзями:
| Жанр: | Главная » Статьи » WordPress » Как получить текущую таксономию у WordPress с помощью get_term_by() |
| Статус: | Для начинающих программистов |
| Ссылка на оригинал статьи (Если указана или эта статья не авторская) | Скачать |
| На сайт предоставил | Вер 28, 2017 14:25 Andriy |
| Поделись статьей |
Смотри также:
Десятилетию WordPress посвящается. Поскольку движок…
Часто при ре дизайне темы для WordPress сталкиваются с…
Часто при установке плагинов на свой сайт (особенно на…
Начинаем небольшую серию статей по глобальные…
Не раз сталкивался с проблемой на localhost, что после…
Написать нам
Privacy Overview
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
| Cookie | Duration | Description |
|---|---|---|
| cookielawinfo-checbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category «Analytics». |
| cookielawinfo-checbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category «Functional». |
| cookielawinfo-checbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category «Other. |
| cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category «Necessary». |
| cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category «Performance». |
| viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
Как получить ярлык таксономии в цикле текущего поста?
Это на странице таксономии ты помучишь вот что из WP-kama
stdClass Object
(
[term_id] => 452
[name] => Метка
[slug] => metka
[term_group] => 0
[term_taxonomy_id] => 452
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 14
[filter] => raw
)
*/
или на странице поста
$term_list = wp_get_post_terms( 2647, ‘post_tag’, array(‘fields’ => ‘all’) );
/*
$term_list будет содержать подобные данные:
Array(
[0] => stdClass Object(
[term_id] => 44
[name] => Новичкам
[slug] => for_newbie
[term_group] => 0
[term_taxonomy_id] => 44
[taxonomy] => post_tag
[description] =>
[parent] => 0
[count] => 7
)
думаю есть и ещё более другие способы вывода.
user_tm, все можно.
Если я правильно понял то на страничке поста выводится циклом названия аналогичных постов которые относятся к кастомному посту инструменты и таксономия подвиды.
если так, то можно просто получить в переменную id поста.
тогда получаем именно слаг
но тут нужно быть внимательным
если у поста несколько терминов таксономий то в переменную придёт массив
судя по wp-kama
честно, это конечно костыли, но яб сделал в таком случае так.
на страничке редактирования equipment.
вывел бы поле кастумное, типо: какие подвиды выводить:
и там вывел бы все подвиды которые существуют
и оттуда уже получал бы слаг для фильтрации
костыл, но зато ты изключаешь ошибки контенщиков
user_tm, был вне доступа. Сорри. Можете спокойно постучать в скайп Alinasy0 подскажу.
А так бы что я сделал.
1 способ самый легкий.
Установить плагин ACF он позволяет добавлять много разных полей практически для чего угодно.
в этом поле выбрал бы:
Инструкция
и прикрепил бы к событию на срабатывания кастумной записи.
на странице судя по инструкции выше, он вернёт тебе или id термина, или массив а там уже ты волен делать всё что угодно.
п.с. это бесплатная версия
2 способ более тяжёлый.
использовать функцию тут
дальше там по цепочке все понятно, и в значение можно прописать выпадающий список или чекбоксы и т д где будут подгружаться данные из таксономии (термины).
ну или проще, если слаг делает с русского на латинский какой то плагин при заполнении термина, то можно прикрутить функцию от этого плагина которая будет срабатывать при сохранении поста и и переименовывать текст который контенщик ввел кириллицей.
ну а дальше юзать функцию которая получает мето поле по ключу. ну и всё.
но первый вариант делается очень быстро. да и в других модернизациях плагин поможет.
так же есть другой плагин metaBOX





