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