Ho usato il modulo Fishpig su un sacco di siti, ho comprato i plugin a pagamento e lo promuovo felicemente da anni. Tuttavia, non lo sto più usando. Fa quello che fa bene, ma quello che fa è far funzionare tutto attraverso Magento.
Ammettiamolo, il cliente dà un'occhiata a un sito Wordpress e improvvisamente inizia a diventare creativo. 'Possiamo farlo in Wordpress!', 'Possiamo farlo nell'installazione di Wordpress!'. Devi continuare a spiegare loro che normalmente, sì, è facile da fare in Wordpress .... ma che la loro installazione di Wordpress non è normale in quanto tutto scorre attraverso il Magento stesso e questo cambia tutto.
Quindi la tua banca di widget Wordpress personalizzati non funzionerà, i plugin di Wordpress di terze parti non funzioneranno. Temi e opzioni dei temi non funzioneranno. A meno che tu non faccia un sacco di lavoro per convertirli e assimilarli nel modulo Fishpig.
Un approccio molto migliore secondo me è quello di seguire la strada di James Kemp ( http://wordpress.org/plugins/magento-wordpress-integration/ ) o Richard Feraro ( http://wordpress.org/plugins/mage-enabler / ). Entrambi adottano lo stesso approccio, permettendoti di accedere all'oggetto Mage da Wordpress e di tirare tutto ciò che vuoi da Magento nel tuo tema Wordpress. Se guardi i plugin, sono molto semplici e non richiedono molto codice.
Entrambi richiedono una modifica app/code/local/Mage/Core/functions.php
poiché Wordpress e Magento hanno function __()
dichiarato un metodo. Ci sono note dettagliate a riguardo su entrambi i siti degli autori di plugin ed è molto semplice. Dopodiché puoi rimanere bloccato.
È così semplice, ecco un esempio usando il plugin James Kemp. Puoi avere un tema Wordpress ridotto con un header.php
like;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
Il che tira l'intero blocco di testa di Magento nell'intestazione di Wordpress. Perfetto, nessuna duplicazione, nessun lavoro aggiuntivo. Nota che ho aggiunto wp_head()
perché se aggiungi plug-in Wordpress lo useranno potenzialmente come hook ed è buona norma averlo nel tuo header.php
file Wordpress .
Lo stesso vale per footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
E c'è il tuo blocco piè di pagina Magento in Wordpress. Il resto dipende da te, ma hai la libertà di aggiungere tutte le cose aggiuntive nella tua installazione di Wordpress che desideri senza alcun vincolo.
Modifica - 14 maggio
Da quando ho scritto questo ho anche iniziato a usare Wordpress come CMS e riportare i dati in Magento usando questo plugin Wordpress - plugin API JSON http://wordpress.org/plugins/json-api/
Per darvi un esempio di codice: il codice seguente estrae le voci richieste in Wordpress per un tipo di post personalizzato chiamato evento, accede a un campo personalizzato in quei post chiamato eventdate le mette tutte in un array, le ordina per data e produce un elenco di tutte gli eventi con un collegamento a ciascuna pagina dell'evento nell'installazione di Wordpress. L'ho usato nella navigazione principale di un sito Magento in un menu a discesa, funziona davvero bene. Wordpress dovrebbe avere un'API JSON aggiunta al core ma al momento non è stata rilasciata.
<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>
Modifica - 15 ottobre
Di recente ho dovuto provare a utilizzare questo metodo di integrazione in un multi store che utilizzava le stesse sottodirectory di codici paese come in questa domanda di Matthias Zeis;
Visualizzazioni di negozi o siti Web diversi nelle sottocartelle
Ho preso in considerazione l'idea di provare l'estensione multistore Fishpig per questo, ma alla fine ho posto una domanda su SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- sottodirectory
Ho messo la risposta lassù, utilizza variabili di ambiente del server e alcuni filtri di Wordpress. Ho aggiunto anche i blocchi server .htaccess e Nginx per aiutare.
Inoltre, per chiunque dispieghi il proprio sito Magento utilizzando Capistrano e brividi nella prospettiva di avere il core Wordpress costantemente aggiornato e i plug-in che inquinano il loro repository, ho scritto un post sul blog che mostra come spostare il lotto nella directory condivisa in Capistrano 3 e hai solo il tuo tema Wordpress nel repository;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/