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' ) ) ));
You must be logged in to reply to this topic.
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!
© 2022 Advanced Custom Fields.