我正在尝试在我的Silverstripe主页中包含来自特定博客的最新博客帖子。我有这个代码从我的所有博客页面返回帖子(网站上有两个):
public function latestBlog($num = 3) {
return BlogPost::get()
->sort('PublishDate', 'desc')
->limit($num);
}
。有关如何在过滤器中指定博客ID的建议?
非常感谢提前。
答案 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过滤器移动到函数参数中,或者将其替换为任何其他属性过滤器。