Когда я разрабатываю плагины, я тестирую их на нескольких версиях WordPress, вставляя ссылки на каталог моих плагинов в разные wp-contentкаталоги. Это замечательно, поскольку мне нужно редактировать файлы только один раз, но это нарушает важную конструкцию для генерации ссылок на ресурсы в моем плагине: __FILE__относится к физическому расположению плагина, а не к тому, в котором он находится wp-content. Как мне решить это?
Моя структура каталогов выглядит так:
/path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.phpjs/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не рекомендуется, потому что администраторы должны иметь возможность изменять имя каталога этого конкретного плагина, но есть ли еще одна причина, чтобы этого избежать? И действительно, ваш билет будет простым решением.