我试图在WordPress中显示所有具有相同类别的帖子,但它没有正确显示,而只是显示所有内容 .
这是php代码:
<?php
$related = get_posts( array(
'category_in' => wp_get_post_categories($post->ID),
'numberposts' => 3,
'post_not_in' => array($post->ID) ) );
if( $related ) foreach( $related as $post ) {
setup_postdata($post); ?>
<div class="post">
<a href="<?php the_permalink(); ?>">
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
?>
<h3><?php the_title();?></h3>
</a>
</div>
<?php }
wp_reset_postdata();
?>
它来自这里:https://wordpress.stackexchange.com/questions/41272/how-to-show-related-posts-by-category
如果它有帮助,这里是有关网站的链接代码无法正常工作:http://u1f8aki.nixweb23.dandomain.dk/cat-4-post-test/
有问题的代码在红色文本下面的页面下方 . 您可以在面包屑的顶部看到类别 .
1 回答
您的代码中存在相当多的错误,我确信其中至少有一个是给您错误结果的罪魁祸首 .
我已经使用一些注释重构了您的代码,解释了为什么以及为什么已经更改:
简而言之,您的代码很多,我觉得用我的示例替换您的代码,只需将参数从
numberposts
更改为posts_per_page
,将post_not_in
更改为post__not_in
.如果它仍然无效,请检查
wp_get_post_categories(get_the_ID())
为每个帖子返回的内容,并确保所有帖子都没有共享您错过的某个类别 .编辑:numberposts实际上是一个有效的参数,改变了我的答案以反映这一点 .