Ich habe das Fishpig-Modul auf einer Vielzahl von Websites verwendet, die kostenpflichtigen Plugins gekauft und seit Jahren gerne beworben. Ich benutze es jedoch nicht mehr. Es macht das, was es gut macht, aber alles läuft über Magento.
Seien wir ehrlich, der Kunde wirft einen Blick auf eine Wordpress-Site und wird plötzlich kreativ. "Das können wir in Wordpress!", "Das können wir in der Wordpress-Installation!". Sie müssen ihnen immer wieder erklären, dass dies normalerweise in Wordpress einfach ist, aber dass ihre Wordpress-Installation nicht normal ist, da alles über Magento selbst läuft und alles verändert.
Damit Ihre Bank von benutzerdefinierten Wordpress-Widgets nicht funktioniert, funktionieren Wordpress-Plugins von Drittanbietern nicht. Themen und Themenoptionen funktionieren nicht. Es sei denn, Sie erledigen eine Menge Arbeit damit, sie in das Fishpig-Modul zu konvertieren und zu assimilieren.
Ein meiner Meinung nach viel besserer Ansatz ist der von James Kemp ( http://wordpress.org/plugins/magento-wordpress-integration/ ) oder Richard Feraro ( http://wordpress.org/plugins/mage-enabler) / ). Beide verwenden den gleichen Ansatz, sodass Sie in Wordpress auf das Mage-Objekt zugreifen und alles, was Sie möchten, aus Magento in Ihr Wordpress-Design übernehmen können. Wenn Sie sich die Plugins anschauen, sind sie sehr einfach und beinhalten nicht viel Code.
Beide erfordern eine Änderung, app/code/local/Mage/Core/functions.php
da sowohl Wordpress als auch Magento eine function __()
Methode deklariert haben. Es gibt jedoch detaillierte Hinweise dazu auf den Seiten beider Plugin-Autoren und es ist sehr einfach. Danach können Sie stecken bleiben.
Es ist so einfach, hier ist ein Beispiel mit dem James Kemp Plugin. Sie können ein abgespecktes Wordpress-Thema mit einem header.php
ähnlichen Thema haben .
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
Welches zieht Ihren gesamten Magento-Kopfblock in den Wordpress-Header. Perfekt, keine Vervielfältigung, keine zusätzliche Arbeit. Hinweis: Ich habe hinzugefügt, wp_head()
dass wenn Sie Wordpress-Plugins hinzufügen, diese möglicherweise als Hook verwendet werden und dies in Ihrer Wordpress- header.php
Datei empfohlen wird.
Gleiches gilt für footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
Und es gibt Ihren Magento-Fußzeilenblock in Wordpress. Der Rest liegt bei Ihnen, aber Sie haben die Freiheit, so viel zusätzliches Material in Ihre Wordpress-Installation einzufügen, wie Sie möchten, ohne Einschränkungen.
Bearbeiten - 14. Mai
Seit ich das geschrieben habe, benutze ich auch Wordpress als CMS und ziehe Daten mit diesem Wordpress-Plugin zurück in Magento - JSON-API-Plugin http://wordpress.org/plugins/json-api/
Um Ihnen ein Codebeispiel zu geben: Der folgende Code ruft die erforderlichen Einträge in Wordpress für einen benutzerdefinierten Beitragstyp mit dem Namen event ab, greift auf ein benutzerdefiniertes Feld in diesen Beiträgen mit dem Namen eventdate zu, ordnet sie nach Datum und gibt eine Liste aller Einträge aus Die Ereignisse werden mit einem Link zu jeder Ereignisseite in Wordpress installiert. Ich habe es in der Hauptnavigation einer Magento-Site in einem Dropdown-Menü verwendet, es funktioniert wirklich gut. In Wordpress soll eine JSON-API zum Core hinzugefügt werden, die jedoch noch nicht veröffentlicht wurde.
<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>
Bearbeiten - 15. Oktober
Ich musste kürzlich versuchen, diese Integrationsmethode in einem Multi-Store zu verwenden, in dem dieselben Länderverzeichnisse wie in dieser Frage von Matthias Zeis verwendet wurden.
Verschiedene Storeviews oder Websites in Unterordnern
Ich habe überlegt, die Fishpig Multistore-Erweiterung zu testen, aber am Ende habe ich eine Frage zu SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- gestellt. Unterverzeichnisse
Ich habe die Antwort dort oben gestellt, es verwendet Server-Umgebungsvariablen und einige Wordpress-Filter. Ich habe auch die .htaccess- und Nginx-Serverblöcke hinzugefügt, um zu helfen.
Außerdem habe ich für alle, die ihre Magento-Site mit Capistrano bereitstellen und zittern, weil sie den ständig aktualisierten Wordpress-Kern und Plugins haben möchten, die ihr Repo verschmutzen, einen Blog-Beitrag geschrieben, der zeigt, wie Sie das gesamte Los in das gemeinsam genutzte Verzeichnis in Capistrano 3 und 4 verschieben können habe nur dein Wordpress Theme im Repo;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/