仅查询当前术语档案的直接子术语和子术语

时间:2013-07-11 作者:Amit Rahav

我在我的主题中使用woocommerce,它附带了一个Product\\u猫术语,作为商店Product上的一个废弃类别。我需要在每个PRODUCT\\U cat存档中显示其直接子项和子项,但不显示子项子项。

我试过:

        <?php $thispage = $wp_query->post; wp_list_categories("taxonomy=product_cat&term=". $term->slug."&title_li=&child_of=".$thispage->slug);?>
它返回了所有Product\\u cat作为ul和存档的子项im in,但没有返回存档的子项。

我试过:

global $post;
        $terms = get_the_terms( $post->ID, \'product_cat\');
        foreach ( $terms as $term )
        $currentID = get_the_ID();
        $args=array(
            \'taxonomy\'=>\'product_cat\',
            \'term\' => $term->slug,
            \'child_of\'=>$currentID
         );

        $my_query = new WP_Query( $args ); 
    ?>

        <?php if ( $my_query->have_posts() ): ?>
        <?php while ( $my_query->have_posts() ) : $my_query->the_post(); ?>
            <li> <a href="<?php the_permalink(); ?>" id="booklink"><?php the_title();?></a></li>
        <?php endwhile; ?>
    <?php endif; ?>
它返回了当前存档的所有子项和子项子项,而没有子项本身。

所以我试着:

        $term_id = $terms;
        $taxonomy_name = \'product_cat\';
        $termchildren = get_term_children( $term_id, $taxonomy_name );

        echo \'<ul>\';
        foreach ( $termchildren as $child ) {
            $term = get_term_by( \'id\', $child, $taxonomy_name );
            echo \'<li><a href="\' . get_term_link( $term->name, $taxonomy_name ) . \'">\' . $term->name . \'</a></li>\';
        }
        echo \'</ul>\';
它什么也没有返回。

我说不出话来。有人有线索吗?

*对不起,我的英语很差

2 个回复
SO网友:TheDeadMedic

尝试get_terms( \'product_cat\', \'parent=\' . get_queried_object_id() )

Update: 重读你的问题,我想我有个更好的主意:

<ul class="categories">
    <?php

        wp_list_categories(
            array(
                \'child_of\' => get_queried_object_id(),
                \'taxonomy\' => \'product_cat\',
                \'title_li\' => \'\',
                   \'depth\' => 2,
            )
        )

    ?>
</ul>

SO网友:Amit Rahav

我有个主意。。。如果仅返回子项:wp\\u list\\u categories(数组(\'child\\u of\'=>get\\u queryed\\u object\\u id(),\'taxonomy\'=>\'product\\u cat\',\'title\\u li\'=>\'\',\'depth\'=>1,\'show\\u option\\u none\'=>\'\');

也许我可以在一个guery args中检查它的所有子项,然后调用wp\\u list\\u类别。尝试:$terms=get\\u the\\u terms($post->ID,\'product\\u cat\');foreach($terms as$term)$currentID=get\\u the\\u ID()$args=数组(\'taxonomy\'=>\'product\\u cat\',\'term\'=>$term->slug,\'exclude\'=>数组(\'get\\u queryed\\u object\\u id())$my\\u query=新建WP\\u查询($args);?>

但它只返回子项的子项,而不返回Product\\u猫的子项。。。

任何人

结束

相关推荐

Option_active_plugins筛选器不起作用

我为option\\u active\\u插件添加了一个过滤器,以防止大多数插件加载到管理页面上。确认位于正确的页面上,并返回经过适当修改的数组,但这对页面上包含的插件没有影响。尝试使用高数字作为筛选器优先级。无影响。有什么想法吗?