php 类别中计数帖子的循环错误
php loop error for count posts in category
我的 wordpress 页面上有多个类别,每个类别都有 1 到 n 个子类别。如果子类别仅包含 1 个 post,我希望显示此 post 的摘录,否则我将显示类别的描述。
我已经有了“正常”类别的部分,但是关于“单个 post 类别”有一个愚蠢的错误。这是我目前所拥有的:
<?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 -->
}
}
?>
结果是:我得到的是正常类别(很好!),但多次是“单个 post 类别”中的第一个。我的循环可能有问题,但我没有看到。有人看到错误了吗?
有两种可能的错误:
- 该类别在数组中出现两次(请尝试
var_dump
。)-> 可以用 array_unique
https://www.php.net/manual/de/function.array-unique.php 修复
- 您忘记了一些调试的回显(某处 - 第一个解决方案应该可以解决问题。)
- 如果第一个解决方案没有解决它,请 post 类别数组的
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>';
}
}
?>
我的 wordpress 页面上有多个类别,每个类别都有 1 到 n 个子类别。如果子类别仅包含 1 个 post,我希望显示此 post 的摘录,否则我将显示类别的描述。
我已经有了“正常”类别的部分,但是关于“单个 post 类别”有一个愚蠢的错误。这是我目前所拥有的:
<?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 -->
}
}
?>
结果是:我得到的是正常类别(很好!),但多次是“单个 post 类别”中的第一个。我的循环可能有问题,但我没有看到。有人看到错误了吗?
有两种可能的错误:
- 该类别在数组中出现两次(请尝试
var_dump
。)-> 可以用array_unique
https://www.php.net/manual/de/function.array-unique.php 修复
- 您忘记了一些调试的回显(某处 - 第一个解决方案应该可以解决问题。)
- 如果第一个解决方案没有解决它,请 post 类别数组的
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>';
}
}
?>