为什么 Fishpig 在 wp-includes/i10n.php 上请求写权限?

Why Fishpig is asking for write-permission on wp-includes/i10n.php?

我正在将 Fishpig Wordpress-Integration 更新到新的 ansible-deployment 版本 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 核心文件具有写权限?

我们强烈希望有单独的关注点,这样 wp-core-files 就不会受到 magento 端的任何影响。

问题是:

如果能得到关于这一点的一些说明,那就太好了。

此文件需要修改,因为 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 服务器上进行文件修改,或者在部署过程中自行修改文件。