如何解决类别中计数帖子的php循环错误
我的wordpress页面上有多个类别,每个类别都有1到n个子类别。如果一个子类别仅包含一个帖子,则希望显示该帖子的摘录,否则,我将显示该类别的说明。
我已经拥有属于“正常”类别的那一部分,但是关于“单一职位类别”存在某种愚蠢的错误。这是我到目前为止所拥有的:
<?php
$args = array(
'orderby' => 'slug','child_of' => $cat_id,);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
$cat_count = get_category($category->cat_ID);
if($cat_count->count == 1) { ?>
<!-- Cat has only one post,display post -->
<?php } else {
<!-- Cat has multiple posts,display cat description -->
}
}
?>
结果是:我得到的是正常类别(很好!),但是多次出现“单个帖子类别”中的第一个。我的循环可能出了点问题,但我看不到。有人看到错误了吗?
解决方法
可能有两个错误:
- 类别在数组中是两次(请尝试
var_dump
。)->可通过array_unique
https://www.php.net/manual/de/function.array-unique.php 修复
- 您忘记了一些调试的回声(在某处-第一个解决方案应该可以解决问题。)
- 如果第一个解决方案不能解决该问题,请张贴类别数组中的
var_dump
。
我现在有一个可行的解决方案……终于!
<?php
foreach ( $categories as $category ) {
// If there is only one post available,go directly to the post
if($category->count == 1) {
$all_posts = get_posts($category);
echo '<div class="item"><h4 class="item-title">' . get_the_title($all_posts[0]->ID) . '</h4><a href="' . get_permalink($all_posts[0]->ID) . '">Read more</a></div>';
} else {
echo '<div class="item"><h4 class="item-title">' . $category->name . '</h4><a href="' . get_category_link( $category->term_id ) . '">Read more</a></div>';
}
}
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。