1

I have a custom post called 'account' and custom taxonomy called 'bank';

What I'm trying to do is to show with wp_query post a list of post that should have a specific custom fields named 'tax'.

But I want in the result list of posts, only one post (for example the last) for each categories of my custom taxonomy.

My code is:

$query = new WP_Query ( array( 
    'showposts' => 5, 
    'post_type' => 'account', 
    'meta_key' => 'other_custom_field', 
    'orderby' => 'meta_value_num', 
    'order' => 'desc', 
    'meta_query' => array(array('key' => 'tax','compare' => '=','value' => 0)), ) );

This code works but it shows all post with same custom fields 'tax' contained in each category of custom post.

I want to show only one post for each categories, with this value of custom field.

  • Can someone help me? – Giulio Jan 10 '18 at 16:42
0
<?php
// get all terms of the `bank` taxonomy
$banks = get_terms(
    array(
        'taxonomy' => 'bank',
        // more arguments can be used, see (1) below the code
    )
);

// look through banks, picking one post from each
foreach ( $banks as $bank ) {

    $args = array(
        'post_type'       => 'account', // your custom post type
        'posts_per_page'  => '1', // one post per bank (per term)
        'tax_query'        => array(
            array(
                'taxonomy' => 'bank',
                'terms'    => $bank->term_id,
            ),
        )
        'meta_query' => array( // your custom field stuff
            array(
                'key' => 'tax',
                'compare' => '=',
                'value' => 0,
            ),
        ), 
        // more arguments can be used, see (2) below the code
    );

    // The Loop
    $query = new WP_Query( $args );

    if ( $query->have_posts() ) {
        while ( $query->have_posts() ) {
            $query->the_post();

            /*
            Your markup goes here
            */
            the_ID();
            the_title();
        }
    }

} // END foreach bank

Also, here should be the error check, but it's out of the question scope.

For accepted arguments see:

  1. WP_Term_Query.
  2. WP_query
  • I tried but it doens't give any results. – Giulio Feb 15 '18 at 7:08
  • Ouch, sorry. I was thinking about categories (as it is written in the question). But there are 'taxonomy terms', not 'categories'. See the fixed code. – Max Yudin Feb 15 '18 at 16:40
  • Seems that works. I'll let you know ;) – Giulio Feb 26 '18 at 7:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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