Когда я разрабатываю плагины, я тестирую их на нескольких версиях WordPress, вставляя ссылки на каталог моих плагинов в разные wp-content
каталоги. Это замечательно, поскольку мне нужно редактировать файлы только один раз, но это нарушает важную конструкцию для генерации ссылок на ресурсы в моем плагине: __FILE__
относится к физическому расположению плагина, а не к тому, в котором он находится wp-content
. Как мне решить это?
Моя структура каталогов выглядит так:
/path/to/wordpress/development/dir/
plugin-development/
monkeyman-rewrite-analyzer/
monkeyman-rewrite-analyzer.php
js/
monkeyman-rewrite-analyzer.js
versions/
3.1/
wp-content/
plugins/
monkeyman-rewrite-analyzer
как символическая ссылка на вышеуказанный плагин
3.1-multi-dir/
wp-content/
plugins/
monkeyman-rewrite-analyzer
как символическая ссылка на вышеуказанный плагин
3.1-multi-domain/
wp-content/
plugins/
monkeyman-rewrite-analyzer
как символическая ссылка на вышеуказанный плагин
Если я хочу епдиеий файл Javascript, я должен использовать plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )
, но при использовании __FILE__
здесь не буду работать, так как реальный путь к файлу будет /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, не /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
так WordPress не может лишить первую часть и сгенерирует URL относительно установки WordPress.
WP_PLUGIN_URL
не рекомендуется, потому что администраторы должны иметь возможность изменять имя каталога этого конкретного плагина, но есть ли еще одна причина, чтобы этого избежать? И действительно, ваш билет будет простым решением.