我了解到WP 3.9+支持符号链接(Article here).
因此,我的插件位于C:\\Github\\my-plugin
. 当我的项目在C:\\Project\\my-site
.
我使用以下命令成功地将其符号化(以管理员身份运行):
mklink /d C:\\Project\\my-site\\wp-content\\plugins\\my-plugin C:\\Github\\my-plugin
符号链接插件
WORKS 但我在所有页面上都收到了以下调试消息:
Warning: fopen(C:/Project/my-site/wp-content/plugins/my-plugin/C:/Github/my-plugin/index.php):
failed to open stream: Invalid argument in
C:\\Project\\my-site\\wp-includes\\functions.php on line 4568
Warning: fread() expects parameter 1 to be resource, boolean given in
C:\\Project\\my-site\\wp-includes\\functions.php on line 4571
正如你所看到的,WordPress检测到的路径是我的站点和插件的合并,因此它无法读取文件。但奇怪的是,插件运行良好。
Anyone successfully symlinked a plugin in Windows 10?
谢谢
[EDIT]
找到问题。我在Github上托管了我的插件,并在网上找到了一个代码片段,可以通过管理面板进行更新。
该代码段具有硬编码目录,因此不会检测到符号链接的url。
最合适的回答,由SO网友:Mark Kaplun 整理而成
不确定根本原因,但应避免使用文件的相对路径。因为它们是相对的,所以您永远无法确定文件的确切位置。这甚至可能成为一种安全风险,因为PHP可能会在默认目录中查找文件。
正确的方法是使用plugin_dir_path, 类似于
require_once plugin_dir_path(__FILE__).\'github-updater.php\';