尝试建立一个简单的“相关帖子”调用,我只想在另一篇帖子有完全相同的术语并出现时显示它。
到目前为止,它在目前起作用,但当该职位是唯一一个有确切术语的职位时,它也会出现。
我正在使用
$orig_post = $post;
global $post;
$tags = wp_get_post_tags($post->ID);
if ($tags) {
echo \'related posts\';
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
\'tag__in\' => $tag_ids,
\'orderby\' => \'ASC\',
\'post__not_in\' => array($post->ID),
\'posts_per_page\'=>2, // Number of related posts to display.
\'caller_get_posts\'=>1
);
$my_query = new wp_query( $args );
while( $my_query->have_posts() ) {
$my_query->the_post();
我不能让它工作。任何帮助都将不胜感激。非常感谢。
SO网友:knif3r
您可以而且应该以更简单的方式进行:
在本例中,您可以看到$tags变量,它获取帖子的标签,比较它们并显示7篇帖子(showposts参数),还确保它不会显示原始帖子(post\\uu not\\u In参数)。
<?php // related posts based on first tag of current post
$tags = wp_get_post_tags($post->ID);
if ($tags) {
echo \'<h3>Related Posts</h3>\';
$first_tag = $tags[0]->term_id;
$args = array(
\'tag__in\' => array($first_tag),
\'post__not_in\' => array($post->ID),
\'showposts\' => 7, // how many posts?
\'caller_get_posts\' => 1
);
$my_query = new WP_Query($args);
if ($my_query->have_posts()) { ?>
<ul>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
</ul>
<?php } ?>
<?php } ?>