根据发布的元值列出自定义分类值

时间:2012-02-17 作者:John

我有一个custom post type 具有custom taxonomy. 在帖子中,我指定了一个帖子元值(通过update_post_meta) 具有值“0”或“1”的(这是一个复选框)。

现在,我正在尝试生成一个分类法值列表,其中包含分配给它们的帖子and the post meta value is set to \'1\'.

有什么方法可以吸引我wp_list_categories 并将特定于post的值作为过滤器参数传递?或者其他方法来实现这一点?

1 个回复
最合适的回答,由SO网友:mor7ifer 整理而成

这将返回一个术语对象数组,如果您需要将这些对象处理为层次结构或其他形式,这很容易,我认为您面临的挑战是获取术语对象。

//get posts
$args = array(
    //basic stuff
    \'post_status\' => \'publish\',
    //meta query
    \'meta_query\' => array(
        array(
            \'key\'     => \'your_key\',
            \'value\'   => \'1\'
        )
    )
);
$posts = new WP_Query( $args );

//get categories from posts and amalgamate them
$categories = array();
foreach( $posts as $post ) {
    $new_cats = wp_get_object_terms( $post->ID, \'your-taxonomy-slug\' );
    $categories = array_merge(
        $categories,
        array_diff(
            $categories,
            $new_cats
        )
    );
}
我觉得你们可以做点什么get_terms 钩子,但我不能把我的手指放在它上面(羞于查询每个术语,看看它是否有符合条件的帖子,但这比我认为的方法效率低)。

结束

相关推荐