Hi,
I added a custom field of type user list to a certain type of posts. On a specific page dedicated to that user, I would like to display links to the posts where this particular custom field was selected. I was wondering if there is an easy way to do a WP_query directly, rather than query ALL posts, and then loop through them to see which one has the custom field set?
Specifically I have a custom post type called “article” and a custom field called Interviewee. The interviewee is set to the User that’s being interviewed in that article. In the custom template page for that user, I want to be able to extract all those articles where the user is the interviewee, hence my need for a query…
Any ideas pointing me in the right direction are appreciated.
Thank you!
Iulian
Hi @iulianionescu
I believe the most efficient way would be to make use of the WP_Query and compare the values in order to come up with the list. The code will look as follows:
<?php
$user = wp_get_current_user();
// args
$args = array(
'numberposts' => -1,
'post_type' => 'article',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'interviewee',
'value' => $user,
'compare' => '='
),
);
// query
$the_query = new WP_Query( $args );
?>
<?php if( $the_query->have_posts() ): ?>
<ul>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<li>
<a href="<?php the_permalink(); ?>">
<img src="<?php the_field('field_name'); ?>" />
<?php the_title(); ?>
</a>
</li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php wp_reset_query(); // Restore global post data stomped by the_post(). ?>