Magento: расширение Fishpig / Wordpress не обрабатывает local.xml на страницах сообщений - PullRequest
2 голосов
/ 27 января 2012

Итак, я установил расширение Fishpigs Wordpress около месяца назад на своем сайте Magento, и все работало хорошо.Где-то, как-то на прошлой неделе форматирование пошло наперекосяк.Отслеживая, что пошло не так, я обнаружил, что страницы сообщений перестали использовать мой собственный макет .phtml («wordpress.phtml»).Все остальные связанные с WordPress страницы используют шаблон правильно.

Я добавил

<wordpress_default>
    <reference name="root">
        <action method="setTemplate"><template>page/wordpress.phtml</template></action>
    </reference>
</wordpress_default>

в свой local.xml и все было хорошо.Сегодня я даже попытался установить все макеты в настройках расширения и той же сделке, только страница поста не отображает правильный макет.Это странная проблема, я не уверен, с чего начать искать ...

1 Ответ

3 голосов
/ 27 января 2012

Я вижу три возможности здесь (при условии, что вы уже выполнили священный ритуал очистки вашей кэш-памяти)

  1. Запрос страницы публикации не загружает вашу local.xmlфайл, возможно, потому что он использует другую тему и / или пакет дизайна

  2. Страница поста не выдает дескриптор wordpress_default, поэтому, хотя ваш файл local.xml включен,ваше setTemplate действие никогда не называется

  3. Существует обновление макета, которое называется после вашего обновления макета (либо через XML, либо непосредственно в коде PHP), которое устанавливаеткорневой шаблон к чему-то еще.

Исследуйте каждый из этих трех пунктов, и вы должны найти свой ответ.

Что касается варианта № 3, у меня нет установки с установленным расширением FishPig, и я не использовал его широко, но похоже, что расширение выполняет некоторые jiggery pokery в ViewController.php для автоматической установки шаблонав page/1column.phtml, если у объекта страницы wordpress (? Я не знаю, что это) есть поле, установленное на 'onecolumn' или '1column'.

parent::loadLayout($handles, $generateBlocks, $generateXml);    

if ($this->_getPage()) {
    $keys = array('onecolumn', '1column');
    $template = $this->_getPage()->getCustomField('_wp_page_template');

    foreach($keys as $key) {
        if (strpos($template, $key) !== false) {
            if ($rootBlock = $this->getLayout()->getBlock('root')) {
                $rootBlock->setTemplate('page/1column.phtml');
            }

            break;
        }
    }
}

Я бы начал там искать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...