Display 3 level taxonomies

时间:2019-03-21 作者:shafshaf

我有点困惑如何处理这种输出。我想显示三级分类法。当一个术语被点击时,我仍然需要显示他的同级兄弟,但也需要显示他孩子的。。。只有当我单击第三级分类术语时,才需要显示帖子。

请参见下面的模型。three level taxonomies

1 个回复
SO网友:Qaisar Feroz

以下是获取所需内容的一般指导原则。使用get_term() 获得一级、二级和三级条件。文档herehere.

1st Level: 您可以在php中直接显示此术语列表,如下所示

$taxonomy = "SOME_TAXONOMY";
$terms = get_terms([
     \'taxonomy\' => $taxonomy,
     \'parent\' => 0,
     ]);


if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { ?>
<ul>
    <?php 
    foreach ($terms as $term) : ?>
        <li>
            <a href="<?php echo get_term_link($term->term_id); ?>"><?php echo $term->name; ?></a>
        </li>
    <?php endforeach; ?>
</ul>
2nd / 3rd Level Terms
显示第一级术语后,应使用ajax操作获取单击的父术语的子术语。通过id ajax操作函数的父项。将Ajax与Wordpress结合使用的文档是here.

ajax操作的代码应该如下所示。

function wp_ajax_child_terms_action(){

    $taxonomy = "SOME_TAXONOMY";
    $parent = $_GET[\'id_of_parent_from_ajax\'];
    $terms = get_terms([
        \'taxonomy\' => $taxonomy,
        \'parent\' => $parent,
     ]);


    if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { ?>
       <ul>
           <?php foreach ($terms as $term) : ?>
            <li>
                 <a href="<?php echo get_term_link($term->term_id); ?>"><?php echo $term->name; ?></a>
            </li>
            <?php endforeach; ?>
      </ul>

<?php }  ?>
我希望这可以帮助你开始。

相关推荐

Show custom taxonomy in theme

如何在设置为显示类别的主题所在的位置显示自定义分类法。我对自定义帖子也有同样的问题,并使用“pre\\u get\\u posts”和$query->set(\'post\\u type\',array(\'post\',\'custom post\')解决了这个问题自定义分类法也有相同的东西吗? 在类别中,它列出了使用类别创建的类别。我还想列出我的custom\\u taxonomy\\u category类别