我目前正在尝试检索帖子文章页面上的相关帖子列表(单个帖子)。我在JBoss 4.0.4 ga
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
/Block/Post/ListPost.php
然而,当我尝试输出public function getRelatedPosts()
{
$posts = $this->getPosts();
die($this->getCategoryId());
return $this->_postCollection;
}
时,我什么都没得到。我也不确定如何将类别过滤器应用于帖子集合。
有人可以在这里提出建议吗?
答案 0 :(得分:2)
我不确定你从哪里获得getCategoryId方法,但这不是ListPost块类的一部分,所以不起作用。你不能只发明这样的方法。
您应该检查块类是否有可用的方法。在不加载文件的情况下执行此操作的简单方法是将以下PHP添加到类中:
echo sprintf('<pre>%s</pre>', print_r(get_class_methods($this)));
exit;
您没有指定帖子应该以何种方式相关,但我猜您想要从同一类别中获取帖子。执行此操作的一个选项是加载帖子的主要类别,然后基于此获得帖子集合。如果查看Post类文件,您将看到getParentTerm($ taxonomy)方法。
if ($category = $post->getParentTerm('category')) {
$relatedPosts = $category->getPostCollection();
// Remove the current post from the collection
$relatedPosts->addFieldToFilter('ID', array('neq' => $post->getId()));
}
您应该始终查看您正在使用的类文件。这就是开源之美。您可以从字面上看到每个对象可用的方法,甚至可以看到它们的工作方式。