Wordpress Querying Похожие сообщения по тегу - PullRequest
2 голосов
/ 14 января 2011

Я пытаюсь запросить список сообщений с теми же тегами, что и текущее сообщение, просматриваемое в 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 ]

1 голос
/ 14 января 2011

Вам нужно собрать теги в тестовую переменную,

<?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(); ?>
1 голос
/ 14 января 2011

Вы сбрасываете $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(); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...