Answers:
这取决于。您可以选择:
如果您使用Fishpig模块(这是一个很好的模块),则可以使用http://www.magentocommerce.com/magento-connect/mage-wordpress-integrated-search-4394.html
最新的解决方案是在Magento上开发您自己的WordPress集成:)
我已经在许多网站上使用了Fishpig模块,购买了付费插件,并且多年来一直很高兴地推广它。但是,我不再使用它。它做得很好,但是要做的是通过Magento运行所有内容。
让我们面对现实吧,客户浏览了一个Wordpress网站,突然开始变得很有创意。“我们可以在Wordpress中做到这一点!”,“我们可以在Wordpress安装中做到这一点!”。您必须继续向他们解释,通常,是的,这在Wordpress中很容易实现。
因此,您的自定义Wordpress小部件库将不起作用,第三方Wordpress插件将不起作用。主题和主题选项无效。除非您进行大量工作,否则将其转换并吸收到Fishpig模块中。
我认为更好的方法是采用James Kemp(http://wordpress.org/plugins/magento-wordpress-integration/)或Richard Feraro(http://wordpress.org/plugins/mage-enabler /)。它们都采用相同的方法,允许您从Wordpress访问Mage对象,并将您想要从Magento中提取的任何内容拖入Wordpress主题。但是,如果您看一下这些插件,它们非常简单,不需要太多代码。
它们都需要进行修改,app/code/local/Mage/Core/functions.php
因为Wordpress和Magento都function __()
声明了一个方法。虽然在两个插件作者站点上都有关于它的详细说明,但这非常容易。之后,您会陷入困境。
非常简单,这是一个使用James Kemp插件的示例。您可以将精简版Wordpress主题添加为header.php
;
<!DOCTYPE html>
<html class="no-js">
<head>
<?php the_block("head"); ?>
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
这会将您的整个Magento头块拉到Wordpress标头中。完美,无重复,无额外工作。请注意,我wp_head()
之所以这样添加是因为,如果您添加Wordpress插件,它们可能会将其用作钩子,并且在您的Wordpress header.php
文件中添加它是一个好习惯。
footer.php也是如此;
<?php the_block("footer"); ?>
<?php wp_footer(); ?>
</body>
</html>
在Wordpress中有您的Magento页脚块。其余的取决于您,但您可以自由地在自己的Wordpress安装中添加尽可能多的其他内容,而没有任何限制。
编辑-5月14日
自从我撰写本文以来,我还开始使用Wordpress作为CMS,并使用此Wordpress插件-JSON API插件http://wordpress.org/plugins/json-api/将数据拉回到Magento 。
给您一个代码示例-下面的代码在Wordpress中为名为event的自定义帖子类型提取必要的条目,访问这些名为eventdate的帖子中的自定义字段,将它们全部放入一个数组中,按日期对其进行排序,并输出所有列表带有指向Wordpress安装中每个事件页面的链接的事件。我在下拉菜单中的Magento网站的主导航中使用了它,它的确运行良好。WordPress将在核心中添加JSON API,但截至目前尚未发布。
<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>
编辑-10月15日
我最近不得不尝试在一家杂货店中使用这种集成方法,该杂货店所使用的国家/地区代码子目录与Matthias Zeis所提的问题相同。
我确实考虑过为此尝试Fishfishg多商店扩展,但最后我在SO上提出了一个问题-> /programming/32613815/htaccess-wordpress-under-magento-site-with-multi-language-子目录
我把答案放在这里,它使用服务器环境变量和一些Wordpress过滤器。我也添加了.htaccess和Nginx服务器块来提供帮助。
此外,对于那些使用Capistrano部署其Magento网站并对不断更新的Wordpress核心和插件污染其回购协议的人们感到不寒而栗的人,我写了一篇博客文章,展示了如何将全部转移到Capistrano 3和回购中只有您的Wordpress主题;
有一个免费的Magento插件,可让您在Magento设计中使用wordpress创建的内容。这使您可以使用Wordpress博客和商店内部内容的功能。我不知道搜索是否也在wordpress内容中。有关更多详细信息,请参见http://www.magentocommerce.com/magento-connect/wordpress-integration.html。