WordPress - 生成按标签和类别过滤的帖子列表

时间:2009-06-18 18:04:49

标签: php mysql wordpress tags

我正在尝试创建一个在页面上有六个列表的WordPress网站,每个列表显示来自不同类别的帖子。简单。

但是,如果用户选择了一个标记,将它们带到该标记存档页面,我希望它们仍然可以看到六个列表模板,但每个类别中的所有帖子也会被标记过滤掉。因此,帖子列表首先按标签过滤,然后按类别过滤。

据我所知,没有办法使用query_posts或其他任何东西,它需要更高级的数据库使用,但我不知道如何做到这一点!我认为这里有一个类似的问题,但因为我知道PHP很少而且没有MySQL,我无法理解答案!

3 个答案:

答案 0 :(得分:5)

是的,我终于找到了一个相对简单的解决方案。

WordPress中存在一个错误,导致类别和标签的查询都无法正常工作,因此query_posts('cat=2&tag=bread');无效,但解决此问题的方法是query_posts('cat=2&tag=bread+tag=bread');神奇地起作用。

在tag.php模板中,我希望它从该存档中获取标记,所以我必须这样做:

<?php query_posts('cat=12&tag='.$_GET['tag'].'+'.$_GET['tag']); ?>

完美无缺。

答案 1 :(得分:2)

试试这段代码:

query_posts('tag=selected_tag');

while (have_posts()) : the_post();


    foreach((get_the_category()) as $category)
        { 

        if ($category->cat_name == 'selected_category')
            {
            // output any needed post info, for example:
            echo the_title();
            }

        }


endwhile;

答案 2 :(得分:0)

根据the Wordpress API,您可以在对query_posts的调用中按标记进行过滤。

示例:

query_posts('tag=cooking');

query_posts('tag=bread,baking');

query_posts('tag=bread+baking+recipe');
相关问题