如何创建谁的帖子也有预定义的外部术语的术语列表?

时间:2011-06-03 作者:m-torin

我有大量的音乐收藏,我的朋友们总是借用我的东西。我想更好地跟踪我的图书馆,所以我正在使用WP构建一个sudo结账系统。

该集合已在WP中使用术语对所有内容进行排序。主要分类是艺术家、发行年份、标签和流派。我想添加一个名为wheresisit的新分类法。使用的帖子类型称为相册。

由于其他插件与该站点交互的方式(我是一个音乐极客),我不能轻易地使用post meta作为库存状态术语。如果有必要的话,我正在使用Scribu的插件自动生成分类法搜索字段。

问题是:

我如何显示相关职位与其他固定职位匹配的职位列表?

例如:显示艺术家的术语列表,该术语位于何处。如果所有艺术家的相册都有一个术语“wheresit”(在哪里),即“idonthaveit”(在列表中),请不要显示艺术家术语。

或者更简单地说:如果某位艺术家的所有专辑都借给了其他人,请不要在艺术家列表中显示该艺术家的姓名。

这样的事情必须通过wpdb来完成吗?过滤循环很容易,但将其转换为列表却让我头痛不已。:)

Edit:我将术语“内部”(inhouse)替换为“ihaveit”(ihaveit),将“checkedout”(checkedout)替换为“idonthaveit”(idonthaveit),将分类法命名为“inventorystatus”(inventorystatus)替换为“whereis”(whereis),以提高清晰度。

1 个回复
最合适的回答,由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
}

结束

相关推荐

$wpdb->Query()多查询支持

遇到了一个问题,即我无法使用$wpdb->query(). 生成的查询直接在phpmyadmin中运行良好,因此它只在ezSQL类中运行。也许是故意的?我找到了这个http://wordpress.org/support/topic/wpdb-gtquery-fails-when-multiple-update-statements-are-used 这也说明了它的设计。有人能证实吗?ezSQL文档没有提到任何关于多查询支持的内容。如果您必须主要执行一系列查询(插入/更新/删除),除了使用$wpdb