我正在尝试创建一个在页面上有六个列表的WordPress网站,每个列表显示来自不同类别的帖子。简单。
但是,如果用户选择了一个标记,将它们带到该标记存档页面,我希望它们仍然可以看到六个列表模板,但每个类别中的所有帖子也会被标记过滤掉。因此,帖子列表首先按标签过滤,然后按类别过滤。
据我所知,没有办法使用query_posts或其他任何东西,它需要更高级的数据库使用,但我不知道如何做到这一点!我认为这里有一个类似的问题,但因为我知道PHP很少而且没有MySQL,我无法理解答案!
答案 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');