Silverstripe博客 - 来自主页上特定博客的最新帖子

时间:2018-03-19 02:26:22

标签: php blogs silverstripe

我正在尝试在我的Silverstripe主页中包含来自特定博客的最新博客帖子。我有这个代码从我的所有博客页面返回帖子(网站上有两个):

public function latestBlog($num = 3) {
    return BlogPost::get()
        ->sort('PublishDate', 'desc')
        ->limit($num);
}

。有关如何在过滤器中指定博客ID的建议?

非常感谢提前。

1 个答案:

答案 0 :(得分:0)

您可能希望按正确的博客进行过滤,然后将排序和限制应用于属于它的博客帖子,例如:

.ticker .ticker-inner {
  display: inline-block;
  white-space: nowrap;
  padding-right: 100%;
  box-sizing: content-box;
  animation:ticker linear 1s infinite forwards;
  -webkit-animation:ticker linear 1s infinite forwards;
}

请注意,这不包括任何错误检查 - 例如public function latestBlog($num = 3) { return Blog::get() // <- DataList of Blogs ->filter('URLSegment', 'your-specific-blog') // <- target a specific Blog ->first() // <- get that specific Blog ->Children() // <- get the BlogPost children for it ->sort('PublishDate', 'desc') // <- sort the BlogPosts ->limit($num); // <- limit the list } 调用可以返回null,因此在继续调用之前值得检查。

您也可以将URLSegment过滤器移动到函数参数中,或者将其替换为任何其他属性过滤器。