为什么Fishpig要求对wp-includes / i10n.php进行写入权限?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (49)

我正在一个新的ansible-deployment中将Fishpig Wordpress-Integration更新到版本4.5.1.5(带有插件ACF,CPT,CS,Root,Multisite)。现在我在Magento-Backend中遇到了以下错误:

Permissions     The following file must be writable: /path/to/magento/wp/wp-includes/l10n.php

为什么magento模块应该对wordpress-core-file有写权限?

我们更倾向于单独关注,以便wp-core-files不会受到magento端的任何攻击。

问题是:

  • 在Fishpig(或它的插件)中的哪个任务将使用此写入权限?
  • 如果_validateL10nPermissions()不丢失Fishpig中的重要功能,是否可以覆盖不检查此文件?

很高兴得到关于这一点的澄清。

提问于
用户回答回答于

这个文件需要修改,因为Magento和WordPress都有一个同名的PHP函数,特别是翻译函数:

function __($args);

在PHP中具有相同名称的多个函数是不可能的。将WP代码库包含到Magento并使其可用的唯一方法是阻止Magento或WordPress定义此功能。该模块选择修改WP文件而不是Magento文件。

它的修改使它变得简单。它只是通过调用function_exists将函数定义包装在WordPress中。这将检查函数是否已经定义(即在Magento中),如果已经定义,则不会再次定义。如果尚未定义,则定义它。

if (!function_exists('__')) {
  function __($args);
}

这允许WordPress自己工作,并且包含在Magento代码中。如果没有这种修改,就不可能同时使用Magento和WordPress。

仅当文件不包含修改时才需要写入权限。如果文件已包含修改,则不需要写入权限。如果您不想在实时服务器上授予写入权限,请在dev / staging服务器上进行文件修改,或者在部署过程中自行修改文件。

扫码关注云+社区

领取腾讯云代金券