I have a custom post type named “Press” that has a couple custom fields, “Intro” and “Excerpt” which I’m trying to display in my view.
In my App.php
controller, I have:
public function pressPostsLoop()
{
$press_posts = get_posts([
'post_type' => 'press',
'posts_per_page' => '3'
]);
return array_map(function ($post) {
$intro = get_field('intro');
$excerpt = get_field('excerpt');
$text = strip_shortcodes($post->post_content);
$text = apply_filters('the_content', $text);
$text = str_replace(']]>', ']]>', $text);
$text_length = apply_filters('text_length', 60);
$text_more = apply_filters('text_more', ' ' . '[…]');
$text = wp_trim_words($text, $text_length, $text_more);
return [
'title' => apply_filters('the_title', $post->post_title),
'link' => get_the_permalink($post->ID),
'date' => get_the_date( 'l F j, Y' ),
'intro' => wp_kses_post($intro),
'excerpt' => $excerpt,
'text' => $text,
];
}, $press_posts);
}
And in my page.blade.php
view, I have:
@foreach($press_posts_loop as $press_post)
<div class="col-12 col-md-4">
<p>{!! $press_post['link'] !!}</p>
<p>{!! $press_post['title'] !!}</p>
<p>{!! $press_post['date'] !!}</p>
<p>intro: {!! $press_post['intro'] !!}</p>
<p>excerpt: {!! $press_post['excerpt'] !!}</p>
<p>text: {!! $press_post['text'] !!}</p>
</div>
@endforeach
Which is displaying the link, title, date, and text for the three posts but not intro or excerpt. Why is that?
I’m also trying to filter those posts to show the three most recent that have a custom toggle field titled “Featured on the Homepage” set to true. How can I do that?
For reference, I’m basing my code on this topic.