0

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

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

一个用于特色文章,它需要带有“特色”标签的帖子。

第三个我在 loop_latest.php 中调用,它需要 6 个最新帖子;这里的诀窍是那些需要是没有标签“滑块”或“特色”的 6 个最新版本。

所以我有这个查询。

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

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

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

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

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

类似的东西?

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

4

1 回答 1

0

正确的参数tag__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),
     ) ); 
于 2013-08-05T22:35:43.527 回答