Magento 2 / Wordpress / Fishpig相关帖子

时间:2017-06-27 13:48:30

标签: php wordpress magento magento2 fishpig

我目前正在尝试检索帖子文章页面上的相关帖子列表(单个帖子)。我在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; } 时,我什么都没得到。我也不确定如何将类别过滤器应用于帖子集合。

有人可以在这里提出建议吗?

1 个答案:

答案 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()));
}

您应该始终查看您正在使用的类文件。这就是开源之美。您可以从字面上看到每个对象可用的方法,甚至可以看到它们的工作方式。