Коли я розробляю плагіни, я тестую їх на декількох версіях 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не рекомендується, оскільки адміністраторам слід дозволити змінити ім'я цього каталогу конкретного плагіна, але чи є ще одна причина, щоб цього уникати? І справді, ваш квиток був би простим рішенням.