Wordpress按标签查询相关帖子

时间:2011-01-14 16:05:37

标签: wordpress

我正在尝试查询与WordPress中正在查看的当前帖子具有相同标签的帖子列表。我想如果我可以查询当前帖子的标签列表,将其传递给变量,然后将该变量传递给query_posts参数,它将完成工作。它似乎适用于帖子中的一个标签,但我显然做错了什么。以下是我到目前为止编写的代码示例:

<?php
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
    $test = ',' . $tag->name; 
}
}
query_posts('tag=' .$test . '&showposts=-1'); while (have_posts()) : the_post(); ?>
      <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; wp_reset_query(); ?>

对我所做错的任何澄清都将非常感激。

2 个答案:

答案 0 :(得分:1)

您每次都在重置$test

尝试

<?php
$test = "";
$posttags = get_the_tags();
if ($posttags) {
foreach($posttags as $tag) {
    $test .= ',' . $tag->name; 
}
}
$test = substr($test, 1); // remove first comma
query_posts('tag=' .$test . '&showposts=-1'); while (have_posts()) : the_post(); ?>
      <p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; wp_reset_query(); ?>

答案 1 :(得分:1)

您需要将标记累积到测试变量

<?php
$posttags = get_the_tags();
$test = '';
$sep = '';
if ($posttags) {
    foreach($posttags as $tag) {
        $test .= $sep . $tag->name; 
        $sep = ",";
    }
}
query_posts('tag=' .$test . '&showposts=-1'); while (have_posts()) : the_post(); ?>
<p><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
<?php endwhile; wp_reset_query(); ?>