为什么Fishpig要求对wp-includes / i10n.php进行写许可?

时间:2018-07-05 13:42:31

标签: wordpress magento-1.9 fishpig

我将在新的ansible部署中将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

为什么宏模块必须对wordpress-core-file具有写权限?

我们强烈希望有单独的关注点,以使wp-core-files不受magento方面的任何损害。

问题是:

  • 在Fishpig(或其附件)中的哪个任务将使用此写权限?
  • 如果不检查Fishpig中的重要功能,是否_validateL10nPermissions()会因为不检查此文件而被覆盖?

很高兴对此进行一些澄清。

1 个答案:

答案 0 :(得分:1)

此文件需要修改,因为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。

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