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