Ketika saya mengembangkan plugin saya mengujinya di beberapa versi WordPress dengan menghubungkan direktori plugin saya di direktori yang berbeda wp-content
. Ini bagus karena saya hanya perlu mengedit file satu kali, tetapi merusak konstruksi penting untuk menghasilkan referensi ke sumber daya di plugin saya: __FILE__
merujuk ke lokasi plugin fisik, bukan yang ada di wp-content
. Bagaimana saya mengatasi ini?
Struktur direktori saya terlihat seperti ini:
/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
sebagai symlink ke plugin di atas
3.1-multi-dir/
wp-content/
plugins/
monkeyman-rewrite-analyzer
sebagai symlink ke plugin di atas
3.1-multi-domain/
wp-content/
plugins/
monkeyman-rewrite-analyzer
sebagai symlink ke plugin di atas
Jika saya ingin membuat file Javascript, saya harus menggunakan plugins_url( 'monkeyman-rewrite-analyzer.js', [base file] )
, tetapi menggunakan di __FILE__
sini tidak akan berfungsi, karena jalur file yang sebenarnya adalah /path/to/wordpress/development/dir/plugin-development/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, tidak /path/to/wordpress/development/dir/versions/*/wp-content/plugins/monkeyman-rewrite-analyzer/monkeyman-rewrite-analyzer.php
, sehingga WordPress tidak dapat menghapus bagian pertama dan menghasilkan URL relatif terhadap instalasi WordPress.
WP_PLUGIN_URL
tidak dianjurkan karena administrator harus diizinkan untuk mengubah nama direktori plugin khusus ini, tetapi apakah ada alasan lain untuk menghindarinya? Dan memang, tiket Anda akan menjadi solusi sederhana.