Support

Account

Home Forums General Issues Extracting a list of posts based on field

Helping

Extracting a list of posts based on field

  • 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(). ?>
Viewing 2 posts - 1 through 2 (of 2 total)

The topic ‘Extracting a list of posts based on field’ is closed to new replies.