仅针对与自定义​​分类值匹配的帖子检索注释

时间:2013-11-22 16:06:57

标签: php wordpress

我正在尝试在我的插件中编写一些代码,这些代码仅显示为自定义分类设置特定值的帖子的注释。我的设置是:
自定义帖子类型 - 对象
自定义分类 - 来源
示例值 - ABC博物馆

对象启用了注释 我可以按用户和每个自定义帖子检索评论

我试过了:

$meta_query = array('key' => 'sources',  'value' => 'ABC Museum');
$args = array(
    'number' => 5,
    'post_type' => 'Object',
    'meta_query' => array($meta_query)
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );

但这会返回一个空数组。这对我来说只是一个愚蠢的语法错误,还是我误解了meta_query的使用,它不适用于自定义分类和自定义帖子类型?

http://pippinsplugins.com/querying-comments-with-wp_comment_query-and-meta-query-in-3-5/我认为它可能是后者 - 元必须与评论有关,而不是它被添加的帖子,这是正确的吗?不幸的是http://codex.wordpress.org/Function_Reference/get_comments在细节和示例上相当薄弱!

由于

2 个答案:

答案 0 :(得分:0)

meta_key值需要附加到评论本身Check Here。如果您根据各自帖子的元值提取评论,WP评论查询将不返回任何内容。

答案 1 :(得分:0)

我认为主要问题是您使用的是 post_type 而不是 type,这是 WordPress 中评论查询和普通帖子查询之间的区别。如果您想使用先前的数组来过滤要从中提取的帖子(或自定义帖子)类型,则需要例如$taxonomy_array,您可以将其与 post__in 选项关联...

$tax_id = get_queried_object_id(); // current taxonomy ID number
$taxonomy_array = get_posts( array(
    'fields' => 'ids',
    'post_type' => 'movies',
    'tax_query' => array(
        array(
            'taxonomy' => 'studio',
            'terms' => $tax_id
        )
    )
) );

$args = array(
    'post__in' => $taxonomy_array,
    'order' => 'DESC',
    'type' => 'comment',
    'status' => 'approve',
    'parent' => 0
);
                        
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );