I am about 90% complete but I am struggling to display related posts that belong to a relationship using CPTs.
I have a competition (post) that is related to a brand (brands). On the post I was able to display the related brand (by relationship) but what I also want to display is other posts that share the same brand.
Current code is displaying all relationships no matter the brand:
$brands = get_posts(array( 'post_type' => 'competitions', 'posts_per_page' => 3, 'orderby' => 'date', 'order' => 'ASC', 'offset' => 0, )); <?php if( $brands ): ?> <ul> <?php foreach( $brands as $brand ): ?> <li> <a href="<?php echo get_permalink( $brand->ID ); ?>"> <?php echo get_the_title( $brand->ID ); ?> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?>
I also tried ‘post__in’ as per https://www.advancedcustomfields.com/resources/relationship/
$ids = get_field('related_brand', false, false); $query = new WP_Query(array( 'post_type' => 'competitions', 'posts_per_page' => 5, 'post__in' => $ids, // Returns Nothing 'post_status' => 'any', 'orderby' => 'post__in', ));
But no results are returned. Where am I going wrong?
Ok, so you want to get all posts type competitions that share the same brand as the current post? If so, you would need a meta_query:
$query = new WP_Query(array( 'post_type' => 'competitions', 'posts_per_page' => 5, 'post_status' => 'publish', 'meta_key' => 'related_brand', 'meta_value' => get_field('related_brand') // This is related brand of current post. ));
See if the query returns anything back?
$competition = get_field( 'related_brand' ); $competition_array = $competition; $competition_ID = $competition_array->ID; $posts = get_posts(array( 'post_type' => 'competitions', 'posts_per_page' => 6, 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'related_brand', 'value' => '"' . $competition_ID . '"', 'compare' => 'LIKE' ) ) ));
The topic ‘Displaying Related Posts – Relationship’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!