WP:如果类别仅包含一个帖子,则显示帖子而不是子类别

时间:2020-09-30 13:39:03

标签: php wordpress wordpress-theming

我仍然对此有问题(是的,这仍然是我的第一个WP项目)。

如果该类别中有多个帖子,我将显示类别及其描述。 但是如果类别中只有一个帖子,我需要直接显示该帖子的链接。 这适用于(部分)以下代码,但前提是只有一个“ 1-post-category”。如果有多个,则仅显示一个(我想是最新添加的)。因此,一定有什么错误或缺失。我猜是循环...?如果可以仔细看看,那就太好了-非常感谢!

<?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="card"><div class="card-header"><h4>' . get_the_title($all_posts[0]->ID) . '</h4><div class="card-body">' . wp_trim_words( get_the_content($all_posts[0]->ID), 30, '...') . '</div><div class="card-footer"><a href="' . get_permalink($all_posts[0]->ID) . '" class="readmore">Read more</a></div></div></div>';
                                
          // otherwise display subcategories
          } else {
             echo '<div class="card"><div class="card-header"><h4>' . $category->name . '</h4><div class="card-body">' . wp_trim_words($category->description, 30, '...') . '</div><div class="card-footer"><a href="' . get_category_link( $category->term_id ) . '" class="readmore">Read more</a></div></div></div>';
          }
     }
?>

1 个答案:

答案 0 :(得分:1)

很难看到输出结果,很难说,但是我很确定这一行:

$all_posts = get_posts($category)

没有按照您的想法工作。相反,请尝试以下操作:

$all_posts = get_posts( array('category'=>$category->term_id) );