Hi Gleenk,
You need to add in global $post; and then it works fine. Here’s an example below of what I did for featured posts using the relationship field.
<div class="row home-featured-posts collapse">
<?php
function custom_excerpt_length( $length ) {
return 20;
}
add_filter( 'excerpt_length', 'custom_excerpt_length', 999 );
remove_filter('the_excerpt', 'wpautop');
function trim_excerpt($text) {
return rtrim($text,'[…]');
}
add_filter('get_the_excerpt', 'trim_excerpt');
global $post;
$posts = get_field('featured_posts');
if( $posts ): ?>
<?php foreach( $posts as $post): ?>
<?php setup_postdata($post); ?>
<div class="small-12 medium-4 columns">
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('small-letterbox'); ?>
</a>
<div>
<h3>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a><br>
<small>
By <?php the_author(); ?> / <?php the_time( get_option( 'date_format' ) ); ?>
</small>
</h3>
<p>
<?php the_excerpt(); ?>...
</p>
<a href="<?php the_permalink(); ?>" class="read-more">Read more</a>
</div>
</div>
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
</div>
Seriously, no help on here? 🙁
When I use this I get the opposite problem. The content works, but the permalink and title both reference the page they are placed into. When I don’t use the post data, they reference correctly, but the content doesn’t show.