我的要求很简单。我想让我的博客列表按顺序排列,created_at DESC
但我也想在顶部显示特色帖子。
假设我有 4 个类别:黄金、白银、青铜和其他……
我想先显示金帖。
然后是银贴。
其次是青铜职位。
最后是其他人。
所有这些都应由 订购created_at DESC
。
你怎么认为 ?
我假设您正在使用 Rainlab 博客插件。有很多方法可以解决这个问题,我认为没有官方的“方法”。以下是一些您必须适合自己的代码的示例。
用树枝解决。Twig 有一个排序过滤器,你可以传入一个箭头函数,在这里查看。然后你可以做 if 语句来显示金到青铜。
{% for blog in blogs|sort((a, b) => a.created_at <=> b.created_at) %}
{% if blog.category == Gold %}{{ blog }}{% endif %}
{% endfor %}
临时CMS 页面。您可以将 PHP 代码中的插件用于页面/布局/部分,而不是使用rain blag 组件。在这里,您可以使用模型以您想要的方式组织它。在这里,我使用 OctoberCMS查询功能。
use Rainlab\Blog\Models\Post;
public function onStart() {
$this['golds'] = Post::whereHas('categories', function ($query) {
$query->where('name', 'Gold');
})->get()->sortBy('create_at');
}
第三种方式也是我推荐的方式是构建您自己的插件,它可以扩展或过滤博客文章,就像我在 CMS 页面示例中所做的那样。阅读此处的文档。
一方面要注意,如果您点击进入,{% component 'something' %}
您可以展开 htm 模板。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句