RainLab 博客 - OctoberCMS - 显示来自特定类别的帖子
RainLab blog - OctoberCMS - Show posts from specific category
我在 Posts.php 中找到了以下代码 - 我想我基本上需要复制它并将其转换为 public 函数,将类别限制为特定 ID。虽然这看起来有点矫枉过正?可以在前端查询当前函数吗?
这是 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 组件的参数 "category filter" 设置为特定类别的 slug
[blogPosts newsList]
pageNumber = "{{ :page }}"
categoryFilter = "news"
postsPerPage = 100
noPostsMessage = "No posts found"
sortOrder = "published_at desc"
categoryPage = "blog/category"
postPage = "blog/post"
==
{% component 'newsList' %}
这将仅显示来自 "news" 类别的帖子
我在 Posts.php 中找到了以下代码 - 我想我基本上需要复制它并将其转换为 public 函数,将类别限制为特定 ID。虽然这看起来有点矫枉过正?可以在前端查询当前函数吗?
这是 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 组件的参数 "category filter" 设置为特定类别的 slug
[blogPosts newsList]
pageNumber = "{{ :page }}"
categoryFilter = "news"
postsPerPage = 100
noPostsMessage = "No posts found"
sortOrder = "published_at desc"
categoryPage = "blog/category"
postPage = "blog/post"
==
{% component 'newsList' %}
这将仅显示来自 "news" 类别的帖子