0

I am trying to make a list of custom post type which going to show all posts but only if author contains custom user meta named "activeacc".

So.. I have thic code...

$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
}

Is it possible to add to this $args whether the author contains custom user meta 'activeacc'? If not, then do not show this posts (even they have "publish" status)?

1 Answer 1

0

You could approach in two steps. First get all the users that match your criteria

$user_ids = get_users([
    'meta_key' => 'activeacc',
    'meta_value' => true, // or whatever value you are storing
    'fields' => 'ID',
]);

and then run your WP_Query for only those users

$properties = new WP_Query([
    'post_type' => 'property',
    'author__in' => $user_ids,
]);

There is no need to set post_status => 'publish' since it's the default.

Also would be possible to accomplish the same in just one query with posts_clauses filter but I will not develop it here.

See https://developer.wordpress.org/reference/classes/wp_user_query/prepare_query/ for all available arguments for get_users.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.