Support

Account

Home Forums Front-end Issues Getting an archive-cpt.php to display custom taxonomy info

Helping

Getting an archive-cpt.php to display custom taxonomy info

  • Current setup:
    I have a custom post type messages
    every message has a taxonomy attached cpt_series
    the taxonomy series has custom fields of series_graphic, series_type, date_start, date_end
    (graphic is an img, type is a dropdown, date’s are both d/m/y)

    I’m attempting to build a query that will return the all of the terms of the taxonomy ‘series’ with the type ‘main’ and sort them by the date_start

    this was my attempt – it doesn’t work
    trying to learn more about WordPress query

    
    $args = array(
       'post_type'   => 'messages',
       'post_status' => 'publish',
       //trying to query the taxonomy 
       'tax_query'   => array(
          array(
             'taxonomy' => 'cpt_series',
             //trying to query the custom field
             'meta_query'	=> array(
                array(
                   'key'	 => 'series_type',
                   'value'	 => 'main',
                   'compare' => 'IN'
                )
             )
          )
       )
    );
    

    Haven’t started tryin to figure out the sort by date yet.
    Any help in this would be great, thanks.

    Sorry if this is a duplicate – tried to edit it and it seemed to disappear.

  • I solved most of this, needed to query the taxonomy directly instead of querying the post for the taxonomy.

    
    $terms = get_terms(array(
       'taxonomy' => 'cpt_series',
       'hide_empty' => true,
       'meta_query'	=> array(
          array(
             'key'	   => 'series_type',
             'value'   => 'main',
             'compare' => 'LIKE'
          ),
       ),
    ));
    				
    if ( ! empty( $terms ) ) {
       echo '<ul>';
       foreach ( $terms as $term ) {
          $image = get_field('series_graphic', 'cpt_series_' . $term->term_id . '' );
          $seriesLink = get_term_link($term->term_id, $taxonomy = 'cpt_series');
          $seriesGraphic = $image['url'];
       ?>
          <li>
             <a href="<?=$seriesLink?>">
                <img src="<?=$seriesGraphic?>" />
                <?=$term->name?>
             </a>
          </li>						
     <?php					
       }
       echo '</ul>';
    } else {
       echo 'No term found.';
    }
    

    Only thing outstanding is how to sort them by the date.

Viewing 2 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.