Eu usei o módulo Fishpig em vários sites, comprei os plugins pagos e o promovo há anos. No entanto, não estou mais usando. Ele faz o que faz bem, mas o que faz é executar tudo através do Magento.
Vamos enfrentá-lo, o cliente dá uma olhada em um site Wordpress e de repente começa a ser criativo. 'Podemos fazer isso no Wordpress!', 'Podemos fazer isso na instalação do Wordpress!'. Você deve continuar explicando a eles que normalmente, sim, isso é fácil de fazer no Wordpress ... mas que a instalação do Wordpress não é normal, pois tudo está sendo executado no próprio Magento e isso muda tudo.
Portanto, seu banco de widgets personalizados do Wordpress não funcionará, os plugins do Wordpress de terceiros não funcionarão. Temas e opções de temas não funcionarão. A menos que você faça muito trabalho convertendo e assimilando-os no módulo Fishpig.
Uma abordagem muito melhor na minha opinião é seguir o caminho de James Kemp ( http://wordpress.org/plugins/magento-wordpress-integration/ ) ou Richard Feraro ( http://wordpress.org/plugins/mage-enabler / ). Ambos adotam a mesma abordagem, permitindo que você acesse o objeto Mage do Wordpress e puxe o que quiser do Magento para o seu tema do Wordpress. Se você olhar para os plugins, eles são muito simples e não envolvem muito código.
Ambos requerem uma modificação, app/code/local/Mage/Core/functions.php
pois o Wordpress e o Magento têm um function __()
método declarado. Existem notas detalhadas sobre isso nos sites dos autores de plugins e é muito fácil. Depois disso, você pode ficar preso.
É tão simples, aqui está um exemplo usando o plugin James Kemp. Você pode ter um tema Wordpress despojado com um header.php
like;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
O que puxa todo o bloco de cabeça do Magento para o cabeçalho do Wordpress. Perfeito, sem duplicação, sem trabalho adicional. Note que eu adicionei wp_head()
porque se você adicionar plugins do Wordpress, eles potencialmente o usarão como um gancho e é uma boa prática tê-lo no seu header.php
arquivo do Wordpress .
O mesmo vale para footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
E há o seu bloco de rodapé Magento no Wordpress. O resto é com você, mas você tem a liberdade de adicionar quantas coisas adicionais à sua instalação do Wordpress desejar, sem restrições.
Editar - 14 de maio
Desde que escrevi isso, também comecei a usar o Wordpress como CMS e a puxar dados de volta ao Magento usando este plugin do Wordpress - plugin da API JSON http://wordpress.org/plugins/json-api/
Para dar um exemplo de código - o código abaixo puxa as entradas necessárias no Wordpress para um tipo de postagem personalizado chamado event, acessa um campo personalizado nas postagens chamadas eventdate coloca todos em uma matriz, classifica por data e gera uma lista de todas os eventos com um link para cada página de evento na instalação do Wordpress. Eu o usei na navegação principal de um site Magento em uma lista suspensa, funciona muito bem. O Wordpress deve adicionar uma API JSON ao núcleo, mas ainda não foi liberada.
<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>
Editar - 15 de outubro
Recentemente, tive que tentar usar esse método de integração em uma loja múltipla que usava os mesmos subdiretórios de código de país da pergunta de Matthias Zeis;
Diferentes visualizações de sites ou sites em subpastas
Eu considerei tentar a extensão de vários armazenamentos Fishpig para isso, mas no final fiz uma pergunta no SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- subdiretórios
Eu coloquei a resposta lá em cima, ele usa variáveis de ambiente do servidor e alguns filtros do Wordpress. Também adicionei os blocos de servidor .htaccess e Nginx para ajudar.
Além disso, para qualquer um que implanta seu site Magento usando Capistrano e se arrepia com a perspectiva de ter o núcleo e os plugins do Wordpress atualizados constantemente, poluindo seu repositório, escrevi uma postagem no blog mostrando como você pode mover todo o lote para o diretório compartilhado no Capistrano 3 e tenha apenas o seu tema Wordpress no repositório;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/