Я нашел следующий код в Posts.php — я думаю, что мне по сути нужно продублировать это и превратить в публичную функцию, ограничивающую категорию отдельным идентификатором. Хотя это кажется излишним? Могу ли я запросить текущую функцию в интерфейсе?
Вот код posts.php:
protected function listPosts()
{
$category = $this->category ? $this->category->id : null;
/*
* List all the posts, eager load their categories
*/
$isPublished = !$this->checkEditor();
$posts = BlogPost::with('categories')->listFrontEnd([
'page' => $this->property('pageNumber'),
'sort' => $this->property('sortOrder'),
'perPage' => $this->property('postsPerPage'),
'search' => trim(input('search')),
'category' => $category,
'published' => $isPublished,
'exceptPost' => $this->property('exceptPost'),
]);
/*
* Add a "url" helper attribute for linking to each post and category
*/
$posts->each(function($post) {
$post->setUrl($this->postPage, $this->controller);
$post->categories->each(function($category) {
$category->setUrl($this->categoryPage, $this->controller);
});
});
return $posts;
}
на переднем конце это:
{% for post in posts %}
<li>
<h3><a href="{{ post.url }}">{{ post.title }}</a></h3>
</li>
{% else %}
<li class="no-data">{{ noPostsMessage }}</li>
{% endfor %}
Может ли кто-нибудь указать мне правильное направление?
Ура,
Не уверен, что вы хотите достичь. Вы просто хотите показать сообщения только из определенной категории?
Установите параметр «фильтр категорий» вашего компонента blogPosts для параметра определенной категории.
[blogPosts newsList]
pageNumber = "{{ :page }}"categoryFilter = "news"postsPerPage = 100
noPostsMessage = "No posts found"sortOrder = "published_at desc"categoryPage = "blog/category"postPage = "blog/post"==
{% component 'newsList' %}
это покажет сообщения только из категории «новости»
Других решений пока нет …