循环内循环:搜索同一类别中的帖子

时间:2012-05-18 作者:Paul

有人能告诉我怎样才能做到这一点吗?我有一个循环,我想创建另一个循环来查找同一类别的其他帖子:但这不起作用:

<?php while ( have_posts() ) : the_post(); ?>
            <?php /* How to display all other posts. */ ?>

                <?php

                $monid = the_ID();
                $cat = get_the_category($monid);  //this works
                $args = array( \'numberposts\' => 5, \'offset\'=> 1, \'category\' => $cat );
                $myposts = get_posts( $args );
                var_dump($myposts); //this don\'t ?>
                <ul>

                </ul>
我找到了这个主题Loop inside the loop 但这对我来说并不管用:有什么帮助吗?

非常感谢

2 个回复
最合适的回答,由SO网友:Paul 整理而成

好吧,它是这样工作的:

<?php while ( have_posts() ) : the_post(); ?>

                <?php
                    $cats = get_the_category();
                    $cat_obj = array_shift($cats);
                    var_dump($cat_obj);


                    $cat_id = (int) $cat_obj->cat_ID;

                    $qq = query_posts( \'cat=$cat_id&posts_per_page=1\' );
                    //var_dump($qq);

                    foreach($qq as $q2){
                        var_dump($q2->post_content);
                    }

                    wp_reset_query();
                ?>
我希望这能有所帮助

SO网友:Stephen Harris

the_ID() 打印当前帖子的ID。您需要使用get_the_ID() 归还它。

而且get_the_category 返回一个类别对象数组-文章所属的每个类别术语的一个foreach。

“category”属性需要一个类别术语ID。因此,您需要选择一个类别对象,然后获取其ID:

  $cats = get_the_category();
  $cat_obj = array_shift($cats);
  $cat_id = (int) $cat_obj->cat_ID;
然后:

$args = array( \'numberposts\' => 5, \'offset\'=> 1, \'category\' => $cat_id );

结束

相关推荐

WP_LIST_CATEGORIES()排除除一个类别外的所有类别

有没有办法排除除一个类别之外的所有类别?我想显示一个类别和它的子类别作为下拉菜单,但管理员可能会添加更多的子类别,所以我不想限制他们可以放在那里的唯一ID。所以我想排除除1及其子类别之外的所有类别。wp\\u list\\u categories()是否可以这样做?