我正在尝试将wordpress集成到magento安装中,但在尝试包含
时仍然遇到以下错误致命错误:无法重新声明__()
我认为这是因为magento和wordpress都使用它。
我怎样才能解决这个问题。
我尝试过这样的事情:
if(!function_exists('__()')) {
function __() {}
}
在magento和wordpress文件中但没有区别 - 授予我不完全理解它的作用。
有什么建议可以解决这个问题吗?
答案 0 :(得分:2)
将其更改为:
if(!function_exists('__')) {
function __() {}
}
答案 1 :(得分:2)
您可以修改WordPress代码。它允许您轻松地集成WordPress和Magento。我使用SSH进入服务器并进入博客目录。然后我运行了以下命令:
grep -rl '__(' * | xargs sed -i 's/__(/__wp(/g'
这允许我将对“_ ”函数的所有引用更改为“ _wp”,而不再重新定义错误。
使用此方法时需要注意一些问题:
我的升级方法是:
这对我来说效果很好。
http://www.technickels.com/2012/12/wordpress-integration-with-magento/
答案 2 :(得分:1)
如上所述,问题出现是因为两个框架都定义了相同的函数(__()
)。为了解决这些问题,您需要删除其中一个声明(或使其符合列出的条件)。如果它们碰巧在两个框架中都是相同的函数,这很好,但如果其中任何一个以不同方式实现函数,则需要将其中一个声明移动到另一个函数(即__2()
)并将现有代码重构为指向它。这是一个坏主意。
这实际上是为什么Wordpress和Magento不容易紧密联系在一起的一个很好的例子。我第一个解决这个问题的建议是保持两个代码库保持一定的距离并使用mod-rewrite来尽可能地集成它们。如果失败了,根据要求,使用其他地方安装的Wordpress来管理帖子并使用包装器获取数据库信息。
当代码库发生变化时(例如你升级),集成两个代码库可能会引起你很多存在感。
希望有所帮助!
谢谢, 乔