Php Magento:在phtml文件中以html形式获取静态块

Php Magento:在phtml文件中以html形式获取静态块,php,magento,Php,Magento,我有一个名为newst_product(带内容)的静态块,我想在.phtml文件中以html的形式显示它 我尝试过以下代码: echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 但这一切都没有显示出来 我是否使用了错误的代码?在布局(app/design/frontend/your_theme/layout/default.xml)中:

我有一个名为
newst_product
(带内容)的静态块,我想在
.phtml
文件中以html的形式显示它

我尝试过以下代码:

echo $this->getLayout()->createBlock('cms/block')->setBlockId('newest_product')->toHtml(); 
但这一切都没有显示出来

我是否使用了错误的代码?

在布局(app/design/frontend/your_theme/layout/default.xml)中:


最新产品
在phtml模板中:

<?php echo $this->getChildHtml('newest_product'); ?>

不要忘记缓存清理


我想这会有帮助。

我想这对你有用

$block = Mage::getModel('cms/block')->setStoreId(Mage::app()->getStore()->getId())->load('newest_product');
echo $block->getTitle();
echo $block->getContent();

它确实可以工作,但现在CMS块中的变量不再解析:(

如果您想将cmsblock加载到模板/块文件/模型等中。您可以按如下操作。这将呈现cmsblock中的任何变量位置

$block  = Mage::getModel('cms/block')
            ->setStoreId(Mage::app()->getStore()->getId())
            ->load('identifier');

$var = array('variable' => 'value', 'other_variable' => 'other value');
/* This will be {{var variable}} and {{var other_variable}} in your CMS block */

$filterModel = Mage::getModel('cms/template_filter');
$filterModel->setVariables($var);

echo $filterModel->filter($block->getContent());

并使用此链接了解更多信息

如果您已经从管理面板创建了名为“block_identifier”的CMS块。 然后,下面是在.phtml中调用它们的代码

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?> 

在Magento中调用CMS静态块时,以下代码将起作用

<?php echo 

$this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml();

?>

这应该可以测试

<?php
$filter = new Mage_Widget_Model_Template_Filter();
$_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
echo $_widget;
?>

从管理面板创建名为block_identifier的新CMS块时,可以使用以下代码从.phtml文件调用它:

<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?> 


然后清除缓存并重新加载浏览器。

是否刷新缓存?要更正的代码接缝获取子CMS块标题的任何解决方法?我可以通过php获取标题,但我不知道如何获取由布局xml加载的块标题。..t别忘了,通常最好在布局主题中使用local.xml,而不是ove正在删除单个xml文件。“为满足我的需要重新定义了什么?”-这意味着您需要将此句柄更改为您正在使用的句柄。我相信您可以将“as”之后的值用作getChildHtml()的参数。添加“这与之前发布的答案相同。这是唯一对我有效的解决方案。非常感谢这将不会拍摄通过cms块中的编辑器上载的任何图像这是从.phtml文件(包括cms块中的变量)显示块的唯一方法,无需使用XML和
getChildHtml()
。谢谢。我比前面提到的@Mcs更喜欢这种方法。大多数情况下,使用布局也与之类似。而且比Mage::getModel('cms/block')更简单方法,其中works@karantan在phtml文件中设置ID基本上是在模板中硬编码的。布局表示系统的配置部分,预期在其中使用ID。希望有帮助。
<?php
$filter = new Mage_Widget_Model_Template_Filter();
$_widget = $filter->filter('{{widget type="cms/widget_page_link" template="cms/widget/link/link_block.phtml" page_id="2"}}');
echo $_widget;
?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('block_identifier')->toHtml(); 
?>