OctoberCMS 博客插件最近 post

OctoberCMS Blog plugin with Recent post

客户有一个奇怪的要求。我正在使用 OctoberCMS 博客插件 https://octobercms.com/plugin/rainlab-blog,它的工作符合我的预期。

但是,我有一个名为 Recent Post 的部分,其中我在同一页面中显示 1 个最新的 post 和一个博客列表博客列表,最新的作为第一个博客。

现在我的客户说,最近Post的博客和第一个博客一样,是最新的博客,显然是一样的。

因此,我使用 Twig 的切片功能 https://twig.symfony.com/doc/3.x/filters/slice.html 来 hide/remove 列表中的第一个博客。这是我的做法。

 {% if this.page.id == 'blog' %}
    {% if posts.currentPage == 1 %}
      {% set sliceBlogs = 1 %}
    {% else  %}
      {% set sliceBlogs = 0 %}
    {% endif %}
  {% else %}
    {% set sliceBlogs = 0 %}
  {% endif %}

{% for post in posts | slice(sliceBlogs) %}

这里如你所见,我设定了一个条件,如果只找到博客列表页面并且也找到了第一页,那么它只会hide/remove博客列表中的第一个博客。

但是我在 Post per page 遇到了问题。目前我已经设置为 11 但是当它在博客列表的第一页时,因为我有 sliced/skipped 第一个博客,它显示少了一个这是不正确的..

所以我的问题是,如何使这部分正确并确保它在每个页面上显示相同数量的最大博客数?

谢谢

好的各位,最后我就这样解决了..

我在我的博客 CMS 页面中放置了以下代码..

function onStart()
{       
    
    $latestPost = RainLab\Blog\Models\Post::isPublished()->orderBy('published_at', 'desc')->first();
    $this->blogPosts->setProperty('exceptPost', $latestPost->id);
}

它将从博客列表中删除第一个最新的 post。

谢谢