wordpress程序,怎样可以获取当前文章分类下的所有文章,并且打印出标题带连接。 40
重点:我不希望当前文章的标题也被打印出来,只打印除当前文章以外的,分类下的其它文章,网上那些都不对。...
重点:我不希望当前文章的标题也被打印出来,只打印除当前文章以外的,分类下的其它文章,网上那些都不对。
展开
1个回答
展开全部
可分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篇
);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询