WordPress的的plugins_url()函数不工作在共享主机(WordPress's

2019-08-07 06:41发布

我已经建立了一个网站使用了先进的自定义字段的插件,并且一切正常在本地主机上我自己的虚拟主机上。 不幸的是,当我移动网站,客户端购买(GoDaddy的共享主机)托管,对于高级自定义字段插件的JavaScript和CSS文件没有正确加载。 检查源,问题是明确的 - 它们都指向以下路径:

http://www.clientsamazingwebsite.com/wp-content/plugins/home/content/06/10145906/html/wp-content/plugins/advanced-custom-fields/js/input-actions.js?ver=3.5。 7.2

(如果你仔细看,你可以看到,有到文件服务器上的实际路径的参考,而不是URL)

我追踪的问题到插件的下面一行:

$this->dir = plugins_url('',__FILE__);

应该返回/wp-content/plugins/advanced-custom-fields

相反,它的返回/wp-content/plugins/home/content/06/10145906/html/wp-content/plugins/advanced-custom-fields

我已经编辑插件文件,使其指向正确的路径,但这些变化会在每次插件更新时间恢复,所以它不是一个长期的解决方案。

我见过一些人抱怨说, __FILE__与预期符号链接魔不变是不行的,但我肯定没有产生任何符号链接。 这是使用GoDaddy的的限制吗?

更新

我注意到, __FILE__返回的东西在不同的GoDaddy的比我的本地机器或我的其他Web服务器上。 其中的两个工作机器寄回的完整路径,从文件系统(即根/srv/www/sitename/public_html/file.php ),而GoDaddy的返回路径开始在主目录( /home/content/06/10145906/html/file.php )。

莫非是这个问题?

Answer 1:

据WordPress的法典

 You can either specify the $path argument as a hardcoded path relative to the plugins directory, or conveniently pass __FILE__ as the second argument to make the $path relative to the parent directory of the current PHP script file. 

因此,使用

plugins_url( basename( __DIR__ ) . '/path/to/plugin/asset.js' );

代替

plugins_url( '/path/to/plugin/asset.js', __FILE__ );

对我来说是可以接受的解决办法。 也许不那么利索作为指定__FILE__虽然。



Answer 2:

你可以试试:

$this->dir = dirname(__FILE__);

如果你正在运行新的PHP版本,使用

$this->dir = __DIR__;



Answer 3:

我希望这也随之而来,因为你的服务器拉升。

检查你的WordPress设置页面,以确保WordPress的URL反映了移动后的新网址。

如果这是正确的,那么什么是压倒一切的WordPress的常量之一,无论是WP_PLUGIN_URL或用来设置它的前体常量之一。 的地方去寻找,这将是在wp-config.php文件。



Answer 4:

这可能是现在用PHP做的(这是不是这样的旧版本)始终返回的“物理”地址__FILE__忽略任何符号链接,等等。上帝知道(和PHP开发者)为什么会出现在PHP中没有设置来改变这种行为但作为WP这条道路比较中的URL已注册它改变它返回的URL的“休息”的正常行为,并返回的完整路径来代替。

这基本上意味着,WP和符号链接不很顺利的,只要食品仍然建议开发者使用__FILE__创建URL路径,同时也有,不会打破在磁盘级别进行任何符号链接等方法来加载库。



Answer 5:

这应该解决您的问题:

define('WP_CONTENT_DIR', realpath($_SERVER['DOCUMENT_ROOT'] . '/wp-content'));


文章来源: WordPress's plugins_url() function not working on shared hosting
标签: php wordpress