所以我建立一个自定义痕迹导航列表来列出所有筹款选项。这些页面正在使用一个名为"fundraising_page."
的独特布局。只有拥有"fundraising_page" layout?
才能抓取页面到目前为止,我有这个方法,无论使用哪个模板,它都会抓取每个页面。
所以我需要的只是列出使用"fundraising_page"
模板的页面。
<?php $collection = Mage::getModel('cms/page')->getCollection()->addStoreFilter(Mage::app()->getStore()->getId());?>
<?php $collection->getSelect()->where('is_active = 1'); ?>
<ul>
<?php foreach ($collection as $page): ?>
<?php $PageData = $page->getData(); ?>
<?php if($PageData['identifier']!='no-route'){ ?>
<li>
<a href="/<?php echo $PageData['identifier']?>"><?php echo $PageData['title'] ?></a>
</li>
<?php } ?>
<?php endforeach; ?>
答案 0 :(得分:0)
而不是if($PageData['identifier']!='no-route')
尝试
if($PageData['root_template']=='fundraising_page')
答案 1 :(得分:0)
这里有一些格式良好的代码并使用正确的方法。
<?php
$collection = Mage::getModel('cms/page')->getCollection()
->addStoreFilter(Mage::app()->getStore()->getId())
->addFieldToFilter('is_active', 1)
->addFieldToFilter('root_template', 'fundraising_page');
?>
<?php foreach ($collection as $page): ?>
<?php if ($page->getIdentifier() != 'no-route'): ?>
<li>
<a href="<?php echo Mage::getUrl($page->getIdentifier())?>"><?php echo $page->getTitle() ?></a>
</li>
<?php endif; ?>
<?php endforeach; ?>