Wordpress循环:按标记字符串排除,按功能注册?

时间:2013-08-05 21:32:13

标签: wordpress loops tags set

我在首页上运行了3个循环。

一个用于滑块,它需要具有“滑块”标签的帖子。

一篇专题文章,它想要标记为“精选”的帖子。

第三个我在loop_latest.php中调用,它想要6个最新帖子;这里的诀窍是那些没有标签“slider”或“featured”的6个晚期。

所以我有这个问题。

$query = new WP_Query( 
     array( 
              'showposts' => '6',
              'tag_not_in' => array('featured, slider'),
     ) );  

我很确定这里的问题是“tag_not_in”不喜欢字符串,它需要ID。

SO!有没有办法将字符串传递给它?

如果没有,我如何判断标签的ID是什么?

我可以在“functions.php”中运行一些代码来设置和保留ID吗?精选== 777,滑块== 888

那样的东西?

我希望能够设置它们以便打包这个主题。而不是希望当客户端注册标签“slider”和“featured”时,它们与我在循环/查询中选择的内容相匹配。

1 个答案:

答案 0 :(得分:0)

correct parametertag__not_in(带有2个下划线)。

另外 - 要获取您的代码ID,请将此代码放入functions.php

function get_tag_id_by_name($tag_name) {
    global $wpdb;
    $tag_ID = $wpdb->get_var("SELECT * FROM ".$wpdb->terms." WHERE  `name` =  '".$tag_name."'");

    return $tag_ID;
}

并且您的新代码应为:

$featuredtag = get_tag_id_by_name('featured');
$slidertag = get_tag_id_by_name('slider');
$query = new WP_Query( 
     array( 
              'showposts' => '6',
              'tag__not_in' => array($featuredtag, $slidertag),
     ) );