term_is_ancestor_of() WP 3.4.0
Проверяет, является ли второй термин дочерним к первому (проверяются все уровни вложенности). Условный тег.
Вернет true если указанный в первом параметре термин, является родительским по отношению ко второму. Будут проверяться все уровни вложенности.
cat_is_ancestor_of()
Хуков нет.
Возвращает
true или false.
Использование
if( term_is_ancestor_of( $term1, $term2, $taxonomy ) ){ // есть зависимость }
- $term1(число/объект) (обязательный)
- ID или объект, который должен быть родительским термином.
По умолчанию: нет - $term2(число/объект) (обязательный)
- Дочерний термин.
По умолчанию: нет - $taxonomy(строка) (обязательный)
- Название таксономии которым принадлежат указанные в $term1 и $term2 термины.
По умолчанию: нет
Примеры
#1. Проверка родственности элемента таксономии
Предположим, что у нас есть пользовательская древовидная таксономия my_tax и в ней термин с ID 5 является дочерним к термину с ID 1. Тогда это условие будет справедливым:
if( term_is_ancestor_of( 1, 5, 'my_tax') ){ echo 'Термин 4 - это дочерний термин к термину 1'; }
#2. Контент для всей ветки терминов
Этот пример полезен, нужно вывести определенны контент для всей ветки терминов. Т.е., когда нужно вывести контент для любых дочерних терминов к указанному и для указанного термина (ID=4).
Код ниже проверяет используется ли термин Music (ID 4) из таксономии Sound и если это этот термин или любой его дочерний, то выводится меню, с помощью функции wp_nav_menu():
<?php // $term - это текущий просматриваемый термин. // Его можно получить так, если нужно: // $term = get_term_by( 'slug', get_query_var('term'), 'sound'); if (term_is_ancestor_of(4, $term, 'sound') or is_term(4, 'sound')){ ?> <div id="music_subnav_menu" class="subnav_menu"> <?php wp_nav_menu( array('menu' => 'Music' )); ?> </div> <? } ?>
Заметки
-
Функция сработает, если второй термин будет дочерним к первому;
-
Результат true будет возвращен даже если $term2 вложена в $term1 через несколько терминов (многоуровневая проверка вложенности);
- Передаваемый параметр должен быть либо числом либо объектом. Если передана строка в виде числа, то функция вернет false.
Список изменений
С версии 3.4.0 | Введена. |
Код term is ancestor of:
wp-includes/taxonomy.php
WP 5.3.1
Cвязанные функции
Из метки: Условные теги (все)
- cat_is_ancestor_of()
- comments_open()
- email_exists()
- has_category()
- has_custom_header()
- has_excerpt()
- has_nav_menu()
- has_post_thumbnail()
- has_shortcode()
- has_tag()
- has_term()
- have_comments()
- have_posts()
- in_category()
- in_the_loop()
- is_404()
- is_active_sidebar()
- is_admin()
- is_admin_bar_showing()
- is_archive()
- is_attachment()
- is_author()
- is_blog_admin()
- is_blog_installed()
- is_category()
- is_child_theme()
- is_comment_feed()
- is_customize_preview()
- is_date()
- is_day()
- is_dynamic_sidebar()
- is_embed()
- is_feed()
- is_front_page()
- is_header_video_active()
- is_home()
- is_local_attachment()
- is_main_query()
- is_month()
- is_multi_author()
- is_multisite()
- is_nav_menu()
- is_network_admin()
- is_new_day()
- is_page()
- is_page_template()
- is_paged()
- is_plugin_active()
- is_post_type_archive()
- is_post_type_hierarchical()
- is_preview()
- is_robots()
- is_search()
- is_single()
- is_singular()
- is_ssl()
- is_sticky()
- is_tag()
- is_tax()
- is_taxonomy_hierarchical()
- is_textdomain_loaded()
- is_time()
- is_trackback()
- is_user_admin()
- is_user_logged_in()
- is_year()
- pings_open()
- post_exists()
- post_password_required()
- shortcode_exists()
- taxonomy_exists()
- term_exists()
- wp_attachment_is()
- wp_attachment_is_image()
- wp_doing_ajax()
- wp_doing_cron()
- wp_is_mobile()
- wp_is_post_autosave()
- wp_is_post_revision()
- wp_script_is()
Еще из раздела: Любые таксономии
- edit_term_link()
- get_edit_term_link()
- get_taxonomies()
- get_taxonomy()
- get_term()
- get_term_by()
- get_term_children()
- get_term_field()