Я использовал модуль Fishpig на множестве сайтов, купил платные плагины и успешно продвигаю его в течение многих лет. Тем не менее, я не использую его больше. Он делает то, что он делает хорошо, но он делает все через Magento.
Посмотрим правде в глаза, клиент смотрит на сайт Wordpress и вдруг начинает проявлять креативность. «Мы можем сделать это в Wordpress!», «Мы можем сделать это в установке Wordpress!». Вы должны продолжать объяснять им, что обычно, да, это легко сделать в Wordpress .... но что их установка Wordpress не нормальна, поскольку она все работает через сам Magento, и это все меняет.
Таким образом, ваш банк пользовательских виджетов Wordpress не будет работать, сторонние плагины Wordpress не будут работать. Темы и опции темы не будут работать. Если вы не выполняете большую часть работы, конвертируя и ассимилируя их в модуль Fishpig.
На мой взгляд, гораздо лучший подход - пойти по пути Джеймса Кемпа ( http://wordpress.org/plugins/magento-wordpress-integration/ ) или Ричарда Фераро ( http://wordpress.org/plugins/mage-enabler). / ). Они оба используют один и тот же подход, позволяя вам получить доступ к объекту Mage из Wordpress и перетащить все, что вы хотите из Magento, в свою тему Wordpress. Если вы посмотрите на плагины, они очень просты и не содержат много кода.
Они оба требуют модификации, так app/code/local/Mage/Core/functions.php
как и в Wordpress, и в Magento function __()
объявлен метод. На обоих сайтах авторов плагинов есть подробные заметки, и это очень просто. После этого вы можете застрять.
Это так просто, вот пример использования плагина Джеймса Кемпа. Вы можете иметь урезанную тему Wordpress с header.php
подобным;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
Который тянет весь ваш головной блок Magento в заголовок Wordpress. Отлично, без дублирования, без дополнительной работы. Примечание, которое я добавил, wp_head()
потому что, если вы добавите плагины Wordpress, они потенциально будут использовать это как ловушку, и это хорошая практика, чтобы иметь это в вашем header.php
файле Wordpress .
То же самое касается footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
И есть ваш блок нижнего колонтитула Magento в Wordpress. Остальное зависит от вас, но вы можете свободно добавлять в свою установку Wordpress столько всего, сколько захотите, без каких-либо ограничений.
Редактировать - 14 мая
С тех пор как я написал это, я также начал использовать Wordpress в качестве CMS и извлекать данные обратно в Magento с помощью этого плагина Wordpress - плагина JSON API http://wordpress.org/plugins/json-api/
Чтобы дать вам пример кода - приведенный ниже код извлекает необходимые записи в Wordpress для настраиваемого типа записи, называемого событием, обращается к настраиваемому полю в этих публикациях, называемому eventdate, помещает их все в массив, сортирует их по дате и выводит список всех события со ссылкой на каждую страницу события в Wordpress установить. Я использовал его в главной навигации сайта Magento в выпадающем списке, он работает очень хорошо. В Wordpress должен быть добавлен JSON API к ядру, но пока он не выпущен.
<ul>
<?php
$events = json_decode(file_get_contents('http://www.example.com/blog/?json=get_posts&post_type=event'));
$eventList = array();
foreach ( $events->posts as $event_item ) :
$arrayDate = date("ymdHi", strtotime($event_item->custom_fields->eventdate[0] ));
$eventList[$arrayDate]['Title'] = $event_item->title;
$eventList[$arrayDate]['Date'] = date('l jS F', strtotime($event_item->custom_fields->eventdate[0] ));
$eventList[$arrayDate]['Link'] = $event_item->url;
endforeach;
// Key reverse sort to get events in date order
ksort($eventList);
foreach ($eventList as $eventItem) :
echo '<li><a href="'. $eventItem['Link'] .'">'. $eventItem['Title'] .' - '. $eventItem['Date'] .'</a></li>';
endforeach;
?>
</ul>
Изменить - 15 октября
Недавно мне пришлось попробовать и использовать этот метод интеграции в мультимагазине, который использовал те же подкаталоги с кодами стран, что и в этом вопросе Матиаса Цейса;
Различные виды магазина или веб-сайты в подпапках
Я действительно пытался попробовать расширение для нескольких магазинов Fishpig для этого, но в конце я задал вопрос по SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- подсправочники
Я поставил ответ там, он использует переменные среды сервера и некоторые фильтры Wordpress. Я также добавил блоки серверов .htaccess и Nginx, чтобы помочь.
Кроме того, для тех, кто развертывает свой сайт Magento с использованием Capistrano и дрожит, имея в виду постоянно обновляющееся ядро Wordpress и плагины, загрязняющие их репо, я написал сообщение в блоге, показывающее, как вы можете просто переместить всю партию в общий каталог в Capistrano 3 и только ваша тема Wordpress в репо;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/