Intereting Posts
Обновление почтовых индексов (опубликовано, черновик, неприкрепленный) в интерфейсе администратора Построен в аджак-админах администратора? Ошибка входа в систему после установки моего письменного плагина Пользовательский таксономический архив BUG Регистрация и использование действий, возвращающих результаты в класс Plugin Лучшие практики для создания сайта WordPress «подвижный»? Создание постоянных номеров постоянных номеров Символьные ссылки на dev box с плагинами и таблицами стилей WooCommerce – фильтр по признакам в admin Модификация комментариев для пользовательских типов сообщений либо single-{custom} .php 404's OR / таксономия / 404's – пользовательский тип сообщения и таксономия permalinks В WordPress я создаю таблицы для своего плагина или я создаю пользовательские типы сообщений для системы регистрации учащихся и классов? Пользовательские сообщения типа URL не работают wp_set_post_terms присваивает сообщение только последнему из нескольких условий Какова наилучшая практика для получения сайта от локального до онлайн?

Показать сообщения закладок

Во-первых, я пытаюсь отобразить все теги из таксономии под названием «группа». Однако эта таксономия в настоящее время содержит два тега, из которых один из них имеет несколько тегов.

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

  • Родительский тег A
    • Детский тег
      • Почтовые данные
    • Детский тег
      • Почтовые данные
    • и т.д…
  • «Родительский» тег B

    <?php $taxonomyName = "group"; $terms = get_terms($taxonomyName,array('parent' => 0)); foreach($terms as $term) { echo '<a href="'.get_term_link($term->slug,$taxonomyName).'">'.$term->name.'</a>'; $term_children = get_term_children($term->term_id,$taxonomyName); echo '<ul>'; foreach($term_children as $term_child_id) { $term_child = get_term_by('id',$term_child_id,$taxonomyName); echo '<li><a href="' . get_term_link( $term_child->name, $taxonomyName ) . '">' . $term_child->name . '</a></li>'; } echo '</ul>'; } ?> 

Solutions Collecting From Web of "Показать сообщения закладок"

Если кто-то заинтересован, ниже – это решение, которое было разработано для меня. Кредиты идут в Акшай-Пагдар.

 $taxonomyName = "group"; $terms = get_terms($taxonomyName,array('parent' => 0)); echo '<ul>'; foreach($terms as $term) { echo '<li><a href="'.get_term_link($term->slug,$taxonomyName).'">'.$term->name.'</a>'; $term_children = get_term_children($term->term_id,$taxonomyName); echo '<ul>'; foreach($term_children as $term_child_id) { $term_child = get_term_by('id',$term_child_id,$taxonomyName); echo '<li><a href="' . get_term_link( $term_child->name, $taxonomyName ) . '">' . $term_child->name . '</a>'; echo '<ul>'; $tax_arg = array( 'post_type' => 'post', 'posts_per_page' => -1, 'post_status' => 'publish', 'tax_query' => array( array( 'taxonomy' => $taxonomyName, 'field' => 'id', 'terms' => $term_child_id ) ) ); $posts = get_posts($tax_arg); foreach($posts as $post) { echo '<li><a href="' . get_permalink($post->ID) . '">' . $post->post_title . '</a></li>'; } echo '</ul>'; echo '</li>'; } echo '</ul>'; echo '</li>'; } echo '</ul>'; 

То, что вы ищете (от чтения, что вы обертываете термины в ссылках), возможно, является

 echo get_the_term_list( $postID, $taxonomy, $before, $separator, $after ); 

Чтобы отфильтровать список, вы можете использовать обратный get_the_terms фильтра get_the_terms . Внутренне get_the_term_list() имеет два фильтра. Первый из них используется с помощью get_the_terms() для извлечения терминов, которые предлагают упомянутый фильтр. Второй – term_links-{$taxonomy_name} и имеет единственный аргумент, который представляет собой массив якорей HTML, указывающих на страницы с временным архивом.

Вы хотите использовать первый:

 add_action( 'get_the_terms', 'WPSE133490getTermsCb', 10, 3 ); echo get_the_term_list( get_the_ID(), 'custom_taxonomy_name', "<ul><li>", "</li><li>", "</li></ul>" ); 

Обратный вызов будет чем-то для ваших файлов function.php тем и будет выглядеть следующим образом: если вы хотите использовать его в качестве плагина, удалите первые три строки.

 <?php defined( 'ABSPATH' ) or exit; /** Plugin Name: (#133490) Remove Term Parents from link list */ function WPSE133490getTermsCb( $terms, $postID, $tax ) { remove_filter( current_filter(), __FUNCTION__ ); $filtered = wp_list_filter( $terms, array( 'parent' => 0, // Only when filtering the built in "Category"-taxonomy // 'category_parent' => 0, ), // AND: All args must match // OR: Only one arg must match // NOT: Not arg must match 'AND' ); return $terms; }