如何在Wordpress中查询多个单词标签?


How can I query Multiple word tags in Wordpress

我正在开发的一个网站(运行WordPress 3.4.2)有一个带有标签列表的侧边栏。

当点击一个标签链接时,用户被带到tag.php,其中包含一个自定义查询,用于显示与所讨论的标签相关的所有帖子。

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts(array( 'post_type' => array('blog','news'),          'tag'=>single_tag_title('', false), 'posts_per_page' => -1, 'caller_get_posts' => 1, 'paged'    => $paged));

后面是一个循环,吐出每篇文章的摘要。当一个单字标签(例如:'windows'),但是当一个多词标签(例如。点击'operating system'),查询没有找到任何帖子。

我知道WordPress标签被设计成单个单词,我知道我可以通过将所有多单词标签连字符来解决这个问题。

但是,为了便于阅读,我更愿意继续使用无连字符的多词标记。

非常感谢你的帮助,David -最后,Wordpress版主@alchymyth的一个提示让我找到了这个更简单的解决方案:

我正在使用single_tag_title,并且需要使用标签段符。下面是小步骤的修复(所有更改都在tag.php中):

  1. 为当前标签设置一个变量:

    $current_tag = single_tag_title("", false);
    
  2. 在query_posts更改:

    'tag'=>single_tag_title('', false)
    

    ……

    'tag_slug__and'=>array($current_tag)
    

…完整的代码是:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$current_tag = single_tag_title("", false);
query_posts(array( 'post_type' => array('blog', 'news'), 'tag_slug__and'=>array($current_tag), 'posts_per_page' => -1, 'caller_get_posts' => 1, 'paged' => $paged));

这是论坛帖子:http://wordpress.org/support/topic/query_posts-does-not-return-results-for-multiple-word-tags?replies=3 post - 4018519

再次感谢。