从分类和POST循环中排除顶级

时间:2014-12-21 作者:Legin76

我有一个自定义的帖子类型/分类法。我创建了一个列表,其中显示了所有类别和其中的帖子。

我建立了一个顶级类别(分类法),它有两个子类别。我希望我的列表只显示第二级类别和其中的帖子。目前,它正确地输出了子类别及其职位,但同时也显示了顶级类别以及其中的所有职位,即使他们不直接在其中。

子类别1

第1篇第2篇第2子类

3号岗位

如何完全排除顶级类别及其列表?E、 g。

子类别1

第1篇第2篇第2子类

我使用的代码如下所示。

参考号:Loop through custom taxonomies and display posts

<?php
    $custom_terms = get_terms(\'service_categories\');

    foreach($custom_terms as $custom_term) {
        wp_reset_query();
        $args = array(\'post_type\' => \'services\',
            \'tax_query\' => array(
                array(
                    \'taxonomy\' => \'service_categories\',
                    \'field\' => \'slug\',
                    \'terms\' => $custom_term->slug,
                ),
            ),
         );

         $loop = new WP_Query($args);
         if($loop->have_posts()) {
            echo \'<h2>\'.$custom_term->name.\'</h2>\';

            while($loop->have_posts()) : $loop->the_post();
             $title = get_the_title();
             $url = get_permalink();
             $serviceicon = get_field( \'select_icon\' );
             ?>

                <div class="left-list2-box">
                    <a href="<?php echo $url; ?>">
                        <div class="left-list2-icon">
                            <div class="list-services-icons <?php echo $serviceicon ?>"></div>
                        </div>
                        <div class="left-list2-title">
                            <?php echo $title; ?>
                        </div>
                    </a>
                </div>

            <?php endwhile;
         }
    }
?>

1 个回复
SO网友:Legin76

作为其他人的参考,我在wordpress支持论坛上获得了这方面的帮助。

您可以在get\\u terms中指定第二个参数以排除特定的术语ID:

$term\\u args=数组(\'排除\'=>数组(5,8))$custom\\u terms=get\\u terms(\'service\\u categories\',$term\\u args);

在上述情况下,我们排除ID为5和8的条款。

参考号:https://wordpress.org/support/topic/excluding-top-level-from-taxonomy-and-post-loop?replies=3

我在foreach之前添加了上面的代码,它工作得很好。

结束

相关推荐