J'ai utilisé le module Fishpig sur une multitude de sites, j'ai acheté les plugins payants et je le fais depuis des années avec plaisir. Cependant, je ne l'utilise plus. Il fait ce qu'il fait bien, mais il exécute tout via Magento.
Avouons-le, le client jette un coup d'œil sur un site Wordpress et commence soudain à devenir créatif. 'Nous pouvons le faire dans Wordpress!', 'Nous pouvons le faire dans l'installation de Wordpress!'. Vous devez continuer à leur expliquer que normalement, oui, c'est facile à faire dans Wordpress .... mais que leur installation Wordpress n'est pas normale car tout fonctionne à travers le Magento lui-même et cela change tout.
Donc, votre banque de widgets Wordpress personnalisés ne fonctionnera pas, les plugins Wordpress tiers ne fonctionneront pas. Les thèmes et les options de thème ne fonctionneront pas. À moins que vous ne fassiez beaucoup de travail pour les convertir et les assimiler dans le module Fishpig.
Une bien meilleure approche à mon avis est de suivre la voie de James Kemp ( http://wordpress.org/plugins/magento-wordpress-integration/ ) ou de Richard Feraro ( http://wordpress.org/plugins/mage-enabler / ). Ils adoptent tous les deux la même approche, vous permettant d'accéder à l'objet Mage à partir de Wordpress et de tirer tout ce que vous voulez de Magento dans votre thème Wordpress. Si vous regardez les plugins, ils sont très simples et n'impliquent pas beaucoup de code.
Ils nécessitent tous deux une modification app/code/local/Mage/Core/functions.php
car Wordpress et Magento ont une function __()
méthode déclarée. Il y a des notes détaillées à ce sujet sur les deux sites des auteurs de plugins et c'est très facile. Après cela, vous pouvez rester coincé.
C'est tellement simple, voici un exemple d'utilisation du plugin James Kemp. Vous pouvez avoir un thème Wordpress dépouillé avec un header.php
similaire;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
Ce qui tire tout votre bloc de tête Magento dans l'en-tête Wordpress. Parfait, pas de duplication, pas de travail supplémentaire. Remarque J'ai ajouté wp_head()
parce que si vous ajoutez des plugins Wordpress, ils peuvent potentiellement l'utiliser comme hook et c'est une bonne pratique de l'avoir dans votre header.php
fichier Wordpress .
Il en va de même pour footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
Et il y a votre bloc de pied de page Magento dans Wordpress. Le reste dépend de vous, mais vous avez la liberté d'ajouter autant de choses supplémentaires dans votre installation Wordpress que vous le souhaitez sans aucune contrainte.
Edit - 14 mai
Depuis que j'ai écrit ceci, j'ai également commencé à utiliser Wordpress comme CMS et à récupérer des données dans Magento en utilisant ce plugin Wordpress - plugin API JSON http://wordpress.org/plugins/json-api/
Pour vous donner un exemple de code - le code ci-dessous extrait les entrées requises dans Wordpress pour un type de message personnalisé appelé événement, accède à un champ personnalisé dans ces messages appelé eventdate les met tous dans un tableau, le trie par date et génère une liste de tous les événements avec un lien vers chaque page d'événement dans l'installation de Wordpress. Je l'ai utilisé dans la navigation principale d'un site Magento dans une liste déroulante, cela fonctionne très bien. Wordpress devrait avoir une API JSON ajoutée au noyau, mais pour l'instant, elle n'a pas été publiée.
<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>
Modifier - 15 octobre
J'ai récemment dû essayer d'utiliser cette méthode d'intégration dans un magasin multiple qui utilisait les mêmes sous-répertoires de code de pays que dans cette question de Matthias Zeis;
Différentes vues de magasin ou sites Web dans des sous-dossiers
J'ai envisagé d'essayer l'extension multiboutique Fishpig pour cela, mais j'ai finalement posé une question sur SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- sous-répertoires
J'ai mis la réponse là-haut, il utilise des variables d'environnement de serveur et certains filtres Wordpress. J'ai également ajouté les blocs serveur .htaccess et Nginx pour vous aider.
Aussi, pour quiconque déploie son site Magento en utilisant Capistrano et frissonne à la perspective d'avoir le noyau et les plugins Wordpress constamment mis à jour polluant leur repo, j'ai écrit un article de blog montrant comment vous pouvez simplement déplacer le tout dans le répertoire partagé de Capistrano 3 et avoir seulement votre thème Wordpress dans le repo;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/