He usado el módulo Fishpig en una gran cantidad de sitios, he comprado complementos pagos y lo he promocionado felizmente durante años. Sin embargo, ya no lo estoy usando. Hace lo que hace bien, pero lo que hace es ejecutar todo a través de Magento.
Seamos realistas, el cliente echa un vistazo a un sitio de Wordpress y de repente comienza a ser creativo. '¡Podemos hacer esto en Wordpress!', '¡Podemos hacer eso en la instalación de Wordpress!'. Tienes que seguir explicándoles que normalmente, sí, eso es fácil de hacer en Wordpress ... pero que su instalación de Wordpress no es normal ya que todo se ejecuta a través del Magento y eso lo cambia todo.
Por lo tanto, su banco de widgets personalizados de Wordpress no funcionará, los complementos de Wordpress de terceros no funcionarán. Los temas y las opciones de tema no funcionarán. A menos que haga un montón de trabajo convirtiéndolos y asimilándolos en el módulo Fishpig.
Un enfoque mucho mejor en mi opinión es seguir el camino de James Kemp ( http://wordpress.org/plugins/magento-wordpress-integration/ ) o Richard Feraro ( http://wordpress.org/plugins/mage-enabler / ). Ambos adoptan el mismo enfoque, lo que le permite acceder al objeto Mage desde Wordpress y extraer lo que quiera de Magento en su tema de Wordpress. Sin embargo, si observa los complementos, son muy simples y no implican mucho código.
Ambos requieren una modificación app/code/local/Mage/Core/functions.php
ya que tanto Wordpress como Magento tienen un function __()
método declarado. Sin embargo, hay notas detalladas al respecto en ambos sitios de autores de complementos y es muy fácil. Después de eso puedes quedarte atrapado.
Es muy simple, aquí hay un ejemplo usando el complemento James Kemp. Puede tener un tema de Wordpress despojado con un me header.php
gusta;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
Que extrae todo el bloque de cabeza de Magento en el encabezado de Wordpress. Perfecto, sin duplicación, sin trabajo adicional. Tenga en cuenta que agregué wp_head()
porque si agrega complementos de Wordpress, potencialmente lo usarán como un enlace y es una buena práctica tener eso en su header.php
archivo de Wordpress .
Lo mismo vale para footer.php;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
Y ahí está el bloque de pie de página Magento en Wordpress El resto depende de usted, pero tiene la libertad de agregar tantas cosas adicionales a su instalación de Wordpress como desee sin ninguna restricción.
Editar - 14 de mayo
Desde que escribí esto, también comencé a usar Wordpress como CMS y a recuperar datos en Magento usando este plugin de Wordpress - JSON API plugin http://wordpress.org/plugins/json-api/
Para darle un ejemplo de código: el código a continuación extrae las entradas requeridas en Wordpress para un tipo de publicación personalizado llamado evento, accede a un campo personalizado en esas publicaciones llamado eventdate los coloca en una matriz, los ordena por fecha y genera una lista de todos los eventos con un enlace a cada página de eventos en la instalación de Wordpress. Lo he usado en la navegación principal de un sitio de Magento en un menú desplegable, funciona muy bien. Wordpress debe tener una API JSON agregada al núcleo, pero aún no se ha lanzado.
<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 octubre
Recientemente tuve que probar y usar este método de integración en una tienda múltiple que usaba los mismos subdirectorios de código de país que en esta pregunta de Matthias Zeis;
Diferentes vistas de tienda o sitios web en subcarpetas
Pensé en probar la extensión multinúcleo Fishpig para esto, pero al final hice una pregunta sobre SO -> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language- subdirectorios
Puse la respuesta allí, usa variables de entorno del servidor y algunos filtros de Wordpress. También agregué los bloques de servidor .htaccess y Nginx para ayudar.
Además, para cualquiera que implemente su sitio de Magento usando Capistrano y tiembla ante la perspectiva de tener el núcleo de Wordpress constantemente actualizado y los complementos que contaminan su repositorio, escribí una publicación de blog que muestra cómo puede mover todo el lote al directorio compartido en Capistrano 3 y solo tenga su tema de Wordpress en el repositorio;
http://www.mcnab.co/blog/wordpress-git-and-capistrano-v3/