WP查询-仅当用户包含某些用户元时才显示自定义帖子

时间:2020-05-09 作者:Tereska

我试图制作一个自定义帖子类型的列表,该列表将显示所有帖子,但仅当作者包含名为“activeacc”的自定义用户元时。

所以我有密码。。。

$args = array(
    \'post_type\' => \'property\',
    \'post_status\' => \'publish\'
);
$your_query = new WP_Query( $args );

while ( $your_query->have_posts() ) {
    $your_query->the_post();
    $the_title = get_the_title(); // variable $the_title now holds your title
}
是否可以将作者是否包含自定义用户元“activeacc”添加到此$args中?如果没有,则不显示此帖子(即使它们具有“发布”状态)?

1 个回复
SO网友:vguerrero

你可以分两步接近。首先获取所有符合条件的用户

$user_ids = get_users([
    \'meta_key\' => \'activeacc\',
    \'meta_value\' => true, // or whatever value you are storing
    \'fields\' => \'ID\',
]);
然后运行WP_Query 仅针对这些用户

$properties = new WP_Query([
    \'post_type\' => \'property\',
    \'author__in\' => $user_ids,
]);
无需设置post_status => \'publish\' 因为这是默认值。

也可以在一个查询中使用posts_clauses 过滤器,但我不会在这里开发它。

看见https://developer.wordpress.org/reference/classes/wp_user_query/prepare_query/ 对于的所有可用参数get_users.