wordpress程序,怎样可以获取当前文章分类下的所有文章,并且打印出标题带连接。 40

重点:我不希望当前文章的标题也被打印出来,只打印除当前文章以外的,分类下的其它文章,网上那些都不对。... 重点:我不希望当前文章的标题也被打印出来,只打印除当前文章以外的,分类下的其它文章,网上那些都不对。 展开
 我来答
naruco
2016-10-17 · TA获得超过639个赞
知道小有建树答主
回答量:807
采纳率:50%
帮助的人:527万
展开全部

可分2步走:

1、先获取指定文章(ID)的所有分类ID

2、根据分类ID,重新query

据此思路,提供代码如下:

if ( ! function_exists('wpdit_get_posts_in_same_categories') ) {
    function wpdit_get_posts_in_same_categories( $post_id ){
        $post = get_post( $post_id );
        if ( ! $post )
            return;
        $categories = get_the_category($post_id);
        if ( ! count( $categories ) )
            return;
        $cid = array();
        foreach ( $categories as $key => $category ) {
            $cid[] = $category->term_id;
        }
        $args = array(
            'post__not_in' => array( $post_id ),
            'category__in' => $cid,
        );
        $relate_posts = get_posts( $args );
        if ( is_wp_error($relate_posts) )
            return;
        foreach ($relate_posts as $key => $relate_post ) {
            printf( '<a href="%s">%s</a>',
                    get_permalink( $relate_post->ID ),
                    get_the_title( $relate_post->ID )
                );
        }
    }
}


wpdit_get_posts_in_same_categories( the_ID() );

放于需要的地方,只要指定post_id即可。(要在文章获取的循环内,否则the_ID()无结果)

更多追问追答
追问
1.我是在右侧边栏执行,所以我把the_ID()直接必成了:wpdit_get_posts_in_same_categories(get_the_ID())
但是只能显示5篇文章,这个数量要在哪里控制那,才能都显示出来,或者控制数量显示。
追答

修改$args,添加posts_per_page参数

$args = array(
            'post__not_in' => array( $post_id ),
            'category__in' => $cid,
            'posts_per_page' => 10 //显示10篇
        );
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式