我有大量的音乐收藏,我的朋友们总是借用我的东西。我想更好地跟踪我的图书馆,所以我正在使用WP构建一个sudo结账系统。
该集合已在WP中使用术语对所有内容进行排序。主要分类是艺术家、发行年份、标签和流派。我想添加一个名为wheresisit的新分类法。使用的帖子类型称为相册。
由于其他插件与该站点交互的方式(我是一个音乐极客),我不能轻易地使用post meta作为库存状态术语。如果有必要的话,我正在使用Scribu的插件自动生成分类法搜索字段。
问题是:
我如何显示相关职位与其他固定职位匹配的职位列表?
例如:显示艺术家的术语列表,该术语位于何处。如果所有艺术家的相册都有一个术语“wheresit”(在哪里),即“idonthaveit”(在列表中),请不要显示艺术家术语。
或者更简单地说:如果某位艺术家的所有专辑都借给了其他人,请不要在艺术家列表中显示该艺术家的姓名。
这样的事情必须通过wpdb来完成吗?过滤循环很容易,但将其转换为列表却让我头痛不已。:)
Edit:我将术语“内部”(inhouse)替换为“ihaveit”(ihaveit),将“checkedout”(checkedout)替换为“idonthaveit”(idonthaveit),将分类法命名为“inventorystatus”(inventorystatus)替换为“whereis”(whereis),以提高清晰度。
最合适的回答,由SO网友:Bainternet 整理而成
如果我理解正确,你想得到albums
特定艺术家(分类法)的(帖子),并且ihaveit
学期
如果是这样的话,它是一个简单的查询,使用tax_query
:
$args = array(
\'posts_per_page\' => -1, //get all
\'post_type\' => \'album\',
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'artist\',
\'field\' => \'slug\',
\'terms\' => array( \'artist-slug\' )
),
array(
\'taxonomy\' => \'whereisit\',
\'field\' => \'slug\',
\'terms\' => array(\'ihaveit\')
)
)
);
$query = new WP_Query( $args );
while($query->have_posts())
{
$query->the_post();
//to your thing / loop here
}