Php 按类别复制wordpress相关帖子
我有一个问题,让$do_not_duplicate正常工作我有几个标题在我的博客上复制,我需要它停止。以下是我到目前为止的情况:Php 按类别复制wordpress相关帖子,php,wordpress,Php,Wordpress,我有一个问题,让$do_not_duplicate正常工作我有几个标题在我的博客上复制,我需要它停止。以下是我到目前为止的情况: <?php if (is_single()): ?> <section> <h3>Related Posts</h3> <?php global $post; $cats = wp_get_post_categories($post->ID);
<?php if (is_single()): ?>
<section>
<h3>Related Posts</h3>
<?php
global $post;
$cats = wp_get_post_categories($post->ID);
$do_not_duplicate[] = $post->ID;
if ( count ( $cats ) > 0):
$args = array( 'numberposts' => 3, 'category' => implode($cats, ","), 'exclude' => $post->ID, 'post__not_in' => $do_not_duplicate );
$related_posts = get_posts( $args );
if (count($related_posts)): ?>
<ul>
<?php foreach ($related_posts as $post) : setup_postdata($post); ?>
<li><a href="<?php the_permalink() ?>"><?php while ( have_posts() ) : the_post(); $do_not_duplicate[] = $post->ID; if ( get_the_title() ) the_title(); else the_ID(); ?><?php
endwhile;
wp_reset_query(); ?>
</a></li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p>No related posts found.</p>
<?php endif; ?>
<?php else: ?>
<p>No related posts found.</p>
<?php endif; ?>
</section>
<?php endif; ?>
相关职位
没有找到相关的帖子
没有找到相关的帖子
您在foreach中有一段时间(have_posts()),这会产生重复。您可以将循环更改为以下内容:
<?php
global $post;
$cats = wp_get_post_categories($post->ID);
$do_not_duplicate[] = $post->ID;
if ( count ( $cats ) > 0):
$args2 = array( 'numberposts' => 3, 'category' => implode($cats, ","), 'exclude' => $post->ID, 'post__not_in' => $do_not_duplicate );
$related_posts = get_posts( $args2 );
if (count($related_posts)):
?>
<ul>
<?php foreach ($related_posts as $post) : setup_postdata($post); ?>
<li><a href="<?php the_permalink() ?>" ><?php $do_not_duplicate[] = $post->ID; if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
<?php endforeach; ?>
</ul>
<?php wp_reset_query(); ?>
<?php endif;endif; ?>
在循环结束时,var$do_not_duplicate保存帖子的id和所有相关帖子的id。请看我想做什么,还是有点模糊?我觉得这很接近,哇,学习php 2年来我犯了一个多大的错误,但我想我仍然是一个noob。哈哈,你提供的代码不起作用。WillxD-我看到你删除了$do_not_duplicate[]=$post->ID;在结果中是否有一种不同的方法可以将其应用到结果中,以确保结果中没有重复项。好的,这是显示重复项的原始代码。这就是我需要重写或修复的内容。在这一点上,我可以重做这一切。任何帮助都将不胜感激:请注意,上面的代码do_not_duplicate没有正常工作。我还没有测试代码,但它应该得到文章的类别,然后将您的参数设置为显示3篇$cats的文章,不包括当前的文章。是否要排除其他内容?相关职位