分别显示父子类别

时间:2017-12-13 17:30:02

标签: php wordpress categories

我想在网格中显示我的帖子,其中父类别分别显示在子类别中,如下所示:

PARENT CATEGORY
Post Title
SUB/CHILD CATEGORY

目前我正在使用此代码:

<?php while ( have_posts() ) : the_post(); ?>
                    <a href="<?php the_permalink();?>" class="col col-sm-6 col-md-4 clearfix single-resource mix all <?php $category = get_the_category(); $secondCategory = $category[1]->cat_name; echo str_replace(' ', '', $secondCategory); ?> " data-ref="mixitup-target">
                                    <article class="resource-container">
                                        <div class="image"><?php the_post_thumbnail( 'medium' );  ?></div>
                                        <div class="details">
                                            <span class="cat">
                                            <?php $category = get_the_category();
                    $firstCategory = $category[0]->cat_name; echo $firstCategory;?>  </span>
                                            <h2><?php the_title();?></h2>
                                            <span class="cat-sub"><?php $category = get_the_category(); $secondCategory = $category[1]->cat_name; echo $secondCategory;?></span>

                                        </div>
                                    </article>
                                </a>
                <?php endwhile; ?>

但这似乎不一致,因为有时父母出现在孩子应该的地方,反之亦然。

如何命令帖子显示在正确的位置,或者希望分别调用父类和子类?子类别也需要作为一个类添加到容器中。

1 个答案:

答案 0 :(得分:0)

您可以在循环开始时使用select distinct emp.id_Staff, count (*) as cnt, LISTAGG (emp.employer_name || '('|| emp.job_title || ')', ', ') WITHIN GROUP (ORDER BY emp.employer_name) AS Employ_info from ( SELECT distinct em.id_Staff, em.employer_name, em.job_title, em_job_status FROM employment em where em.job_status = 'Active' ) emp group by emp.id_Staff 设置所有这些,然后使用变量,不要每次都调用该函数。

还要考虑有超过1个父类别的情况。

wp_get_object_terms

这是你应该如何使用它。您可以通过为类别添加循环来检查是否存在多于一个父项或多于一个子项...

此外,您可以在猫或猫的容器之前的html中执行条件,以便在猫不存在的情况下移除容器。

对于类更好地使用类别slug。

$parent_categories = wp_get_object_terms(get_the_ID(), 'category', array('parent'=>0));
// can be more than 1 parent... so you maybe want to loop.
$parent_category = $parent_categories[0]; // get first parent category
// array of child categories for the parent category for this post.
$child_categories = wp_get_object_terms(get_the_ID(), 'category', array('parent'=>$parent_category->term_id));
$first_child_category = $child_categories[0]; // get first parent category