Intereting Posts
Могу ли я использовать один плагин wp внутри другого? Пропустить исходный URL через перенаправление входа Ссылки в the_content не связаны Устанавливать порядковые номера и без поискового вызова для страницы архива Как подключить сторожевой скрипт для существования WP-страницы? Когда использовать add_settings_section и просто register_setting? Получать сообщения по пользовательской таксономии и настраиваемому типу сообщений Как отображать последние сообщения, которые еще не были показаны с помощью WP_Query? Добавить код только для сообщений в блоге facebook like, tweet и google + 1 кнопки внутри цикла на домашнем, архивные и поисковые страницы и отсутствующие кнопки facebook как кнопки Ajax live Поиск не работает в WordPress Dashboard Editor Относительные URL-адреса изображений в сообщениях начинаются с корня – не из адреса (URL) в WordPress в общих настройках Скрипт Jquery не загружается на сайт. Повторить код, изменить переменную? Индивидуальный стиль дата месяц год

Иерархическое отображение пользовательской таксономии

Я создаю тему свойства, и у меня есть иерархическая таксономия «property_location», зарегистрированная для пользовательского типа «Тип». Каждому имуществу будет назначено местоположение через этот налог, который может иметь одного или нескольких родителей в иерархическом порядке. Так, например, если я назначаю термин местоположения «Спрингс» в свойство, которое является дочерним термином «Гаутенг», оно должно дать мне

Springs, Gauteng 

И если Гаутенг является детским термином «Южная Африка», он должен дать мне

 Springs, Gauteng, South Africa 

Но если я просто назначу термин «Гаутенг» (если предположить, что это дочерний термин «Южной Африки», он должен дать мне

 Gauteng, South Africa 

Поэтому мой вопрос заключается в том, как написать функцию достаточно умную, чтобы найти место определения местоположения самого низкого уровня, присвоенное свойству, и получить его родительские условия в порядке? Есть ли какие-либо функции WordPress, которые помогут?

Solutions Collecting From Web of "Иерархическое отображение пользовательской таксономии"

Функция wpse244577_list_terms() ниже использует wp_list_categories() для тяжелого подъема, а затем изменяет результаты, чтобы термины находились в обратном порядке иерархии.

Поместите этот код в плагин или файл functions.php вашей темы:

 /** * Lists term links for a taxonomy in reverse order of hierarchy * * Based on https://developer.wordpress.org/reference/functions/wp_list_categories/#comment-1169 * @param $taxonomy string taxonomy name * @param $separator string separator for terms */ function wpse244577_list_terms( $taxonomy, $separator = ', ' ) { // Get the term IDs assigned to post. $post_terms = wp_get_object_terms( get_the_ID(), $taxonomy, [ 'fields' => 'ids' ] ); if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) { $terms = wp_list_categories( [ 'title_li' => '', 'style' => 'none', 'echo' => false, 'taxonomy' => $taxonomy, 'include' => $post_terms, 'separator' => $separator, ] ); $terms = rtrim( trim( str_replace( $separator, $separator, $terms ) ), ', ' ); $terms = explode( $separator, $terms ); $terms = array_reverse( $terms ); $terms = implode( $separator, $terms ); echo $terms; } } 

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

 wpse244577_list_terms( 'property_location' );