ОБНОВЛЕНО v3
Первое первый: вы видите inherit
потому, что сообщение был пересмотрен или прикрепление добавляется. Таким образом, вы должны выбрать сообщение post , которое имеет статус publish
.
MySQL запрос, чтобы получить 3 последнее сообщение является:
SELECT
posts.ID AS post_id,
posts.post_title,
posts.post_date
FROM
whrg_posts AS posts
WHERE
posts.post_status = 'publish'
AND posts.post_type = 'post'
ORDER BY
posts.post_date DESC
LIMIT 3;
Предполагая, что вы создали модель для почт и PostMeta, как это упоминается в
this tutorial. Мы должны сначала получить всю почту, тогда мы должны получить ссылку
src
на этот пост.
Добавить эту функцию в BlogPost модели
Public function getPostById($post_id)
{
return BlogPost::where('ID', $post_id)
->first();
}
заменить этот getPosts()
метод в BlogPost модели
Public function getPosts()
{
return BlogPost::with('postmetas')
->status()
->type()
->orderBy('post_date', 'DESC')
->limit(3)
->get();
}
И в вашем контроллере вы можете получить доступ к нему, как
public function anyPostList()
{
$postImages = []; //array to hold the featured image URL in a key value pair
$BlogPost = new BlogPost();
$posts = $BlogPost->getPosts();
foreach ($posts as $post)
{
if (!empty($post->postmetas))
{
foreach ($post->postmetas as $postmeta)
{
//if _thumbnail_id exists then get its guid for src
if ($postmeta->meta_key == '_thumbnail_id' && !empty($postmeta->meta_value)){
$thumbnail_id = $postmeta->meta_value;
$attachment = $BlogPost->getPostById($thumbnail_id);
if(!empty($attachment->guid))
$postImages[$post->ID] = $attachment->guid;
}
}
}
}
$data = [
'posts' => $posts,
'postImages' => $postImages
];
return view('test.post', $data);
}
Показать сообщение в лезвии: имя_проекта/ресо urces/просмотры/тест/post.blade.php
@foreach($posts as $post)
<h1>{{ $post->post_title }}</h1>
<span>Published on : {{ $post->post_date }}</span>
@if(isset($postImages[$post->ID]))
<img src="{{$postImages[$post->ID]}}" width="200"/>
@endif
<div>
{{ $post->post_content }}
</div>
@endforeach
Надеется, что это помогает!
Ссылка: Accessing WordPress Post through Laravel
Почему бы не использовать REST API, чтобы запросить эти 3 сообщения? (wpdomain/wp-json/wp/v2/posts) –
У всех ваших сообщений есть изображение? –