多个单个站点,一个插件目录-调整plugins_url()

时间:2012-04-14 作者:brasofilo

[这不是一个多站点问题]

更新:这个问题在逻辑上是不可能的,或者是思维循环,如果你愿意的话,请检查下面的更新。

技术是laid out here in WPEngineer.
它允许有一个插件文件夹来为运行在同一服务器上的多个WordPress站点提供服务。

所以,我所有的开发站点都在wp配置中有这个。php

define( \'WP_PLUGIN_DIR\', \'/www_dev/base-site/wp-content/plugins\' );
define( \'WP_PLUGIN_URL\', \'http://base-site.dev/wp-content/plugins\');
只有基本站点有一个插件文件夹,并且在其wp配置中没有设置此常量。

我发现我在另一个网站。dev和插件尝试调用基本站点。开发,如下所示:

所讨论的插件是高级自定义字段,但我猜它可能发生在任何其他插件中,插件的导出XML函数调用此地址http://base-site.dev/wp-content/plugins/advanced-custom-fields/core/actions/export.phphttp://other-site.dev/wp-content/plugins/advanced-custom-fields/core/actions/export.php, 但是这个地址不存在,插件使用这个变量构建执行导出函数的表单操作$this->dir = plugins_url(\'\',__FILE__);

The question is: 我们是否可以制定htaccess规则或应用过滤器来解决此问题?

[更新]

在anmari输入并仔细查看之后,我认为没有解决方案
Theplugins_url uses WP_PLUGIN_URL.

插件正在呈现以下html:
<form action="http://base-site.dev/wp-content/plugins/advanced-custom-fields/core/actions/export.php" method="post">

没有,也永远不会有这样的事情:
<form action="http://other-site.dev/wp-content/plugins/advanced-custom-fields/core/actions/export.php" method="post">

1 个回复
最合适的回答,由SO网友:anmari 整理而成

我想你说的是,它然后“导出”错误的系统xml(我不熟悉这个插件)?

理想情况下,插件本身应该包括/使用代码,而不是以这样的方式,以便无论代码存储在哪里,它仍然知道使用它的上下文/系统。

你有没有试过看看插件作者是否可以更新插件代码?或者让某人查看代码并提供修复程序。

这将是一个更好的解决方案,而不是与htaccess混为一谈。

结束

相关推荐