Wordpress query_posts按标签或类别

时间:2013-07-09 15:13:27

标签: wordpress

有没有办法按类别或标签查询帖子?我想获得属于同一类别的三个最新帖子或共享相同的标签。以下是我已经拥有的代码:

$posttags = get_the_tags();
$tags = '';
if ($posttags) {
  foreach($posttags as $tag) {
    $tags .= ','.$tag->name;
  }
} 
$taglist = substr($tags, 1);
$category = get_the_category();
$posts = query_posts('&tag='.$taglist.'&orderby=date&order=DESC&posts_per_page=3&cat='.$category[0]->term_id); 

但是这只会获得属于同一类别并且共享相同标签的帖子。

2 个答案:

答案 0 :(得分:2)

如何为类别提取两次数据,然后为标记

提取数据
$posttags = get_the_tags();
$tags = '';
if ($posttags) {
  foreach($posttags as $tag) {
    $tags .= ','.$tag->name;
  }
} 
$taglist = substr($tags, 1);
$category = get_the_category();
$tagposts = query_posts('&tag='.$taglist.'&orderby=date&order=DESC&posts_per_page=3');

$categoryposts= query_posts('&orderby=date&order=DESC&posts_per_page=3&cat='.$category[0]->term_id);

$post=array_merge($tagposts,$categoryposts);

然后,如果有重复项,您可以使用某种array_unique

答案 1 :(得分:0)

如果您知道标记名称,则可以使用下面的查询来获取标记名称与之匹配的所有帖子:

select id, post_title, guid from wp_posts p inner join wp_term_relationships r 
on p.id=r.object_id and p.post_status='publish' and p.post_type='post' 
inner join wp_term_taxonomy x on r.term_taxonomy_id=x.term_taxonomy_id and 
x.taxonomy='post_tag' inner join wp_terms t on x.term_id=t.term_id and t.name 
like '%tag_name%' group by r.object_id;

在上面的查询中替换 tag_name 。 这是reference