【问题标题】:Accessing post list from different block从不同的块访问帖子列表
【发布时间】:2014-04-08 10:26:08
【问题描述】:

你好,

我正在尝试在 Wordpress (fishpig) 主页上实现一个滑块。我创建了一个新的 phtml 模板并在 xml 文件中添加了一个滑块块。到目前为止一切顺利,标记被渲染到我想要的主页。

但是循环没有运行,显然是因为

$this->getPosts()
引用了与 Fishpig_Wordpress_Block_Post_list 不同的类。

我的问题是如何从核心/模板滑块块中访问帖子列表?我对 Magento 完全陌生,所以我才刚刚开始思考块的概念以及整个模板系统的工作原理。

我试过了

$className = Mage::getConfig()->getBlockClassName('Fishpig_Wordpress_Block_Post_list');
$block = 新 $className();
$block->getPosts();

$this->getLayout()->getBlockSingleton('Fishpig_Wordpress_Block_Post_list')->getPosts();

但无济于事。有人能指出我正确的方向吗?

【问题讨论】:

    标签: wordpress magento fishpig


    【解决方案1】:

    当您在 XML 中包含新块和模板时,将块类型更改为“wordpress/sidebar_widget_posts”。这将允许您使用 getPosts() 方法。

    或者,您可以直接在模板中构建自己的帖子集合:

    <?php $posts = Mage::getResourceModel('wordpress/post_collection')
        ->addIsViewableFilter()
        ->setOrderByPostDate()
        ->load() ?>
    <?php if (count($posts) > 0): ?>
        <ul>
            <?php foreach($posts as $post): ?>
                <li class="item">
                    <a href="<?php echo $post->getPermalink() ?>">
                        <?php echo $this->escapeHtml($post->getPostTitle()) ?>
                    </a>
                </li>
            <?php endforeach; ?>
        </ul>
    <?php endif; ?>
    

    【讨论】:

    • 非常感谢!我已经选择了您的第二个解决方案。请注意:我收到一个错误,即 addIsViewableFilter() 方法未定义。我无法立即在模型文件中找到类似的方法,所以我暂时忽略了它。
    猜你喜欢
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多