包括magento外部的magento标头。$this的问题->;getChildHtml()
我对这个话题进行了彻底的研究,但没有找到答案 我试图在WordPress页面中包含一个磁磁头。我创建了一个新的wordpress模板,并添加了以下代码包括magento外部的magento标头。$this的问题->;getChildHtml(),magento,Magento,我对这个话题进行了彻底的研究,但没有找到答案 我试图在WordPress页面中包含一个磁磁头。我创建了一个新的wordpress模板,并添加了以下代码 try { require_once ABSPATH . '/app/Mage.php'; if (Mage::isInstalled()) { $mage = Mage::app(); Mage::getSingleton('core/session', array('name' => '
try {
require_once ABSPATH . '/app/Mage.php';
if (Mage::isInstalled()) {
$mage = Mage::app();
Mage::getSingleton('core/session', array('name' => 'frontend'));
if(Mage::getDesign()->designPackageExists('xxx')) {
Mage::getDesign()->setPackageName('xxx');
Mage::getDesign()->setTheme('xxx');
}
// init translator
$mage->getTranslator()->init('frontend');
// init head
$head = $mage->getLayout()->getBlockSingleton('page/html_head');
} }
然后再往下一点,在我的模板里
echo $head->toHtml();
现在正在发生的是,头部的一些部分被回声,而有些部分没有
当我进入head.phtml并试图弄清楚发生了什么时,我注意到任何包含
$this->getChildHtml()
没有得到回应
我查看并注意到作者正在手动添加html和CSS。为什么会这样?为什么不自动添加它们?这是一个相关的问题吗
谢谢您熟悉magento布局的渲染方式吗?使用
$head=$mage->getLayout()->getBlockSingleton('page/html_head')代码>创建一个没有任何子项的新块。这就是作者需要再次添加JS和CSS的原因。要加载默认头块,请查看此线程。您可以使用$layout->getBlock('head')->toHtml()加载它代码>要显示在头块内部生成的块,需要首先创建它,然后将其设置为头块的子项
例如,以下是我如何在Wordpress中显示Magento标题块,包括由原始header.phtml中的getChildHtml()生成的货币下拉框:
Mage::getSingleton('core/session', array('name' => 'frontend'));
$session = Mage::getSingleton("customer/session");
$layout = Mage::getSingleton('core/layout');
$headerBlock = $layout->createBlock('page/html_header')->setTemplate('page/html/header.phtml');
$currencyBlock = $layout->createBlock('directory/currency')->setTemplate('currency/currency.phtml');
$headerBlock->setChild('currency_selector', $currencyBlock);
$headerBlock = $headerBlock->toHtml();
然后,您可以在页面上所需的位置写入块:
echo $headerBlock;
我知道有点晚了,但希望这能帮助其他人解决这个问题。我想加载我当前的主题标题“我们如何加载?”。