3Sebagai pemaju WordPress yang mencipta produk yang sangat disesuaikan untuk pelanggan saya, saya mendapati diri saya mengalami masalah yang sama berulang kali apabila cuba membuat skrip PHP dalam kerangka WordPress. Saya suka menggunakan fungsi terbina dalam WordPress, tetapi saya terus berjalan ke dalam mesej ralat yang sama berulang kali: "Panggil ke kaedah yang tidak ditentukan ..." atau "gagal membuka aliran."
Kemudian anda pergi memburu untuk mencari fail yang betul yang perlu anda sertakan, memerlukan, termasuk_once, atau memerlukan_once, bergantung kepada keperluan anda. Sebaik sahaja anda mencari fail yang betul, biasanya beberapa dokumen PHP dalam folder WP-termasuk, contohnya, anda perlu memasukkan/menghendaki pada permulaan skrip anda-selalunya hanya untuk mencari "panggilan untuk kaedah yang tidak ditentukan ..."
Untuk menjimatkan masa dan membiarkan anda mula membuat kod sekarang
, Tidak selepas jam (atau hari) Googling penyelesaian, saya membuat skrip mudah yang saya mulakan semua fail tersuai saya. Ia mengendalikan semua fail yang betul yang saya perlukan untuk 99% pembangunan saya.
Caveat
Saya hanya mengesyorkan menggunakan ini semasa anda sedang membangunkan plugin, tema, atau skrip anda dan kemudian, sebelum pergi ke pengeluaran, mencari fail mana yang anda perlukan. Saya tidak
tidak mengesyorkan anda menyimpan skrip ini berjalan sepanjang masa kerana ia membuat panggilan yang tidak perlu untuk fail yang anda mungkin tidak perlukan.
Saya akan memandu anda melalui skrip ini supaya anda dapat melihat apa yang saya lakukan dan mengapa. Ini juga boleh berfungsi sebagai alat rujukan untuk anda kemudian.
Lupakan Abspath - Buat jalan anda sendiri
Saya suka sentiasa mempunyai abspath yang ditakrifkan, tetapi ia terkena atau terlepas dengan beberapa skrip dan pemasangan WordPress. Saya biasa menggunakan
mudah jika
Uji untuk memeriksa sama ada atau tidak abspath ditakrifkan, tetapi itu tidak selalu berfungsi sama ada:
[bahasa sourcecode = "php"]
/ * Nota: inilah yang saya tidak buat lagi */
// Tentukan abspath
jika (! ditakrifkan ('abspath'))}
tentukan ('abspath', dirname (___ file___). '/');
}[/Sourcecode]
Sebaliknya, saya membuat laluan saya sendiri ke pemasangan WordPress saya yang jauh lebih stabil:
[bahasa sourcecode = "php"]
$ lokasi = $ _server ['document_root'];
termasuk ($ lokasi. '/wp-config.php');
termasuk ($ lokasi. '/wp-load.php');
termasuk ($ lokasi. '/wp- termasuk/pluggable.php');
[/Sourcecode]
Ini menganggap pemasangan WordPress anda berada di akar laman web anda iaitu www.yoursite.com
Jika itu tidak berlaku, tambahkan rentetan ke pembolehubah lokasi $ anda seperti ini:
[bahasa sourcecode = "php"]
$ lokasi = $ _server ['document_root']. '/Your-wp-install';
[/Sourcecode]
Tiga besar
Dalam pengalaman saya, terdapat tiga fail yang menyebabkan semua masalah saya ketika menubuhkan skrip saya. Saya panggil ini "Big Three" saya kerana apabila saya memasukkan atau memerlukannya, kebanyakan masalah saya hilang ketika datang ke kesilapan "panggilan ke kaedah yang tidak ditentukan". Mereka adalah:
- wp-config.php
- pluggable.php
- wp-load.php
Sebaik sahaja anda mempunyai ini, anda akan mendapati kebanyakan kesilapan anda hilang.
[bahasa sourcecode = "php"]
// Dapatkan tiga besar
termasuk (abspath. 'wp-config.php');
termasuk (abspath. 'wp-load.php');
termasuk (abspath. 'WP-termasuk/pluggable.php');
[/Sourcecode]
Global $ WPDB
Satu lagi perkara yang perlu dilakukan ialah memastikan bahawa $ WPDB anda adalah pemboleh ubah global. Ini membolehkan sebarang fungsi yang anda buat untuk mempunyai akses kepada ciri pertanyaan pangkalan data WordPress. Ini boleh menjadi penyelamat masa yang besar.
Kerana anda memasukkan fail WP-CONFIG.PHP dan WP-DB.PHP, anda tidak sepatutnya mempunyai masalah untuk mendapatkan $ WPDB untuk berfungsi dengan baik, tetapi saya masih suka menjalankan ujian
jika untuk memeriksa terlebih dahulu:
[bahasa sourcecode = "php"]
// Dapatkan empat besar
Global $ WPDB;
jika (! isset ($ wpdb))
{
termasuk ($ lokasi. '/wp-config.php');
termasuk ($ lokasi. 'WP-termasuk/wp-db.php');
}[/Sourcecode]
menguji skrip
Jika anda bermula dengan pemasangan baru WordPress, anda hanya mempunyai satu pengguna admin. Oleh itu, tidak ada gunanya cuba menyambung ke pangkalan data WordPress dan pengguna pertanyaan. Saya membina ujian mudah ini untuk melihat sama ada kita menyambung dengan betul. Jika ya, anda akan melihat nama dan alamat e -mel anda yang didaftarkan dengan WordPress dalam jadual:
[bahasa sourcecode = "php"]
/*
Ujian di atas termasuk pernyataan yang berfungsi dengan
menyenaraikan semua pentadbir dan e -mel mereka
alamat dalam jadual.
*/
// Mula ujian
$ args = array (// sediakan pertanyaan untuk hanya mendapatkan pentadbir
'Peranan' => 'Pentadbir',
'Medan' => 'all_with_meta'
);
$ query = get_users ($ args); // Gunakan panggilan get_users
// Sediakan jadual
echo '
Nama yang bagus | e -mel |
';
// Untuk setiap pentadbir, buat barisan meja
foreach ($ query as $ query) {
echo ''. $ query-> user_nicename. ' | '. $ query-> user_email. ' | ';
} // akhir foreach
echo '
'; // Tutup tag meja
// Ujian Akhir - Komen keluar atau padam dari sini ke "Ujian Mula" di atas
[/Sourcecode]
Jika ujian berfungsi dan anda melihat nama dan alamat e -mel anda, hanya padamkan komen kami keluar skrip ujian dan mulailah pengekodan!
Anda boleh menjatuhkan fail PHP ini di mana -mana dalam folder WordPress dan ia akan berfungsi. Oleh itu, untuk ujian dan pengaturcaraan awal, skrip ini dapat menjimatkan banyak masa yang dibelanjakan untuk menyelesaikan masalah teknikal asas.
Sekali lagi, anda mungkin mahu melakukan kerja terperinci sebaik sahaja fungsi anda berfungsi dengan betul dan hanya memasukkan fail yang benar -benar diperlukan. Jika anda tidak perlu memasukkan fail WP-Config.php, sebagai contoh, jangan! Cukup komen kod, garis demi baris, dan lihat jika ia berfungsi dengan betul. Simpan apa yang anda perlukan, kehilangan selebihnya.
Mudah -mudahan ini akan menjimatkan banyak masa dan membolehkan anda memberi tumpuan kepada pengekodan, bukannya pemetaan asas fail yang diperlukan untuk pembangunan WordPress.
Inilah skrip lengkap untuk rujukan mudah. Hanya salin, simpan fail di mana sahaja diperlukan, dan bersenang -senang untuk mendapatkan kerja yang dilakukan:
[bahasa sourcecode = "php"]
Php
/* Magic Justyn termasuk
Menganggap anda menggunakan folder root pelayan anda untuk anda
Pemasangan WordPress. Jika tidak, tambahkan sub-folder di mana untuk
WordPress yang anda gunakan.
Sebagai contoh, tambahkan sub-folder ke pembolehubah lokasi $:
$ lokasi = $ _server ['document_root']. '/-Sub-folder';
*/
$ lokasi = $ _server ['document_root'];
termasuk ($ lokasi. '/wp-config.php');
termasuk ($ lokasi. '/wp-load.php');
termasuk ($ lokasi. '/wp- termasuk/pluggable.php');
Global $ WPDB;
jika (! isset ($ wpdb))
{
termasuk ($ lokasi. '/wp-config.php');
termasuk ($ lokasi. '/wp- termasuk/wp-db.php');
}/*
Ujian di atas termasuk pernyataan yang berfungsi dengan
menyenaraikan semua pentadbir dan e -mel mereka
alamat dalam jadual.
*/
// Mula ujian
$ args = array (// sediakan pertanyaan untuk hanya mendapatkan pentadbir
'Peranan' => 'Pentadbir',
'Medan' => 'all_with_meta'
);
$ query = get_users ($ args); // Gunakan panggilan get_users
// Sediakan jadual
echo '
Nama yang bagus | e -mel |
';
// Untuk setiap pentadbir, buat barisan meja
foreach ($ query as $ query) {
echo ''. $ query-> user_nicename. ' | '. $ query-> user_email. ' | ';
} // akhir foreach
echo '
'; // Tutup tag meja
// Ujian Akhir - Komen keluar atau padam dari sini ke "Ujian Mula" di atas
?>
[/Sourcecode]
Adakah anda ingin menyelidiki sedikit lebih mendalam ke dalam PHP? Lihat laman rakan kongsi kami, phpmaster.com.
Soalan Lazim (Soalan Lazim) Mengenai WordPress Termasuk/Memerlukan Skrip
Apakah perbezaan antara termasuk dan memerlukan dalam WordPress?
Dalam WordPress, kedua -duanya termasuk dan memerlukan digunakan untuk memasukkan fail ke dalam skrip PHP yang lain. Perbezaan utama terletak pada bagaimana mereka mengendalikan kegagalan. Jika fail tidak dijumpai, termasuk akan memancarkan amaran tetapi membenarkan skrip diteruskan, sementara memerlukan akan menyebabkan kesilapan maut dan menghentikan skrip. Oleh itu, penggunaan yang diperlukan apabila fail diperlukan untuk aplikasi yang dijalankan, dan gunakan termasuk apabila fail tidak wajib. > Skrip termasuk/memerlukan boleh digunakan untuk meningkatkan keselamatan tapak WordPress anda dengan memasukkan fail PHP yang berkaitan dengan keselamatan. Sebagai contoh, anda boleh memasukkan fail yang mengandungi fungsi untuk membersihkan input pengguna, memeriksa kebenaran pengguna, atau menghalang serangan suntikan SQL. Sentiasa pastikan bahawa laluan ke fail yang disertakan adalah betul dan selamat untuk mengelakkan kelemahan inklusi fail.
Mengapa WPDB saya tidak berfungsi atau menunjukkan apa -apa dalam jawatan? tidak berfungsi seperti yang diharapkan. Ia mungkin disebabkan oleh ralat sintaks, kelayakan pangkalan data yang salah, atau masalah dengan pelayan pangkalan data. Pastikan anda telah memasukkan fail WP-Load.php pada permulaan skrip anda untuk menggunakan kelas WPDB. Juga, periksa pertanyaan SQL anda untuk kesilapan dan pastikan ia bersedia untuk mengelakkan serangan suntikan SQL. WordPress yang memegang jalan mutlak ke direktori WordPress. Ia sering digunakan dalam termasuk atau memerlukan pernyataan untuk memasukkan fail dari direktori WordPress. Untuk menggunakannya, hanya prepend abspath ke laluan relatif fail. Sebagai contoh, memerlukan (abspath. 'Wp-config.php'); akan memasukkan fail WP-config.php.
Bagaimana saya boleh menambah JavaScript dengan betul ke WordPress?
Untuk menambah JavaScript dengan betul ke WordPress, anda harus menggunakan fungsi WP_ENQUEUE_SCRIPT. Fungsi ini membolehkan anda memasukkan fail JavaScript dalam tajuk atau footer WordPress, menentukan kebergantungan, dan mengawal versi fail. Sentiasa gunakan wp_enqueue_script dalam fail functions.php atau plugin, dan tidak langsung di header.php atau footer.php files.
Mengapa wpdb saya tidak dimuatkan? Tidak memuatkan, ia mungkin disebabkan oleh perisytiharan global yang hilang dalam fungsi anda. Kelas WPDB adalah pemboleh ubah global di WordPress, jadi anda perlu mengisytiharkannya sebagai global sebelum menggunakannya dalam fungsi. Sebagai contoh, Global $ WPDB; Pada permulaan fungsi anda harus menyelesaikan masalah. Gunakan fungsi wp_enqueue_style, bukannya termasuk atau memerlukan skrip. Fungsi WP_ENQUEUE_STYLE membolehkan anda memasukkan fail CSS dalam tajuk WordPress, menentukan kebergantungan, dan mengawal versi fail. Sentiasa gunakan wp_enqueue_style dalam fail functions.php atau plugin, dan tidak langsung dalam fail header.php.
Bolehkah saya menggunakan skrip termasuk/memerlukan untuk memasukkan fail php dalam jawatan WordPress?
Tidak, anda tidak boleh menggunakan skrip termasuk atau memerlukan untuk memasukkan fail PHP dalam jawatan WordPress. Siaran WordPress tidak menyokong kod PHP atas alasan keselamatan. Sekiranya anda perlu memasukkan fail php dalam siaran, anda harus membuat kod shortcode yang merangkumi fail dan menggunakan kod shortcode dalam siaran. Plugin dalam WordPress?
Untuk memasukkan fail dari plugin di WordPress, anda boleh menggunakan fungsi plugin_dir_path dalam kombinasi dengan skrip termasuk atau memerlukan. Fungsi plugin_dir_path mengembalikan laluan mutlak ke direktori plugin. Sebagai contoh, termasuk (plugin_dir_path (fail). 'Myfile.php'); akan memasukkan fail myfile.php dari direktori yang sama seperti fail semasa.
boleh saya gunakan skrip termasuk/memerlukan untuk memasukkan fail dari tema di WordPress?
untuk memasukkan fail Dari tema di WordPress, anda boleh menggunakan fungsi get_template_directory dalam kombinasi dengan skrip termasuk atau memerlukan. Fungsi get_template_directory mengembalikan laluan mutlak ke direktori tema semasa. Sebagai contoh, termasuk (get_template_directory (). '/Myfile.php'); akan memasukkan fail myfile.php dari direktori tema semasa. Atas ialah kandungan terperinci Ultimate termasuk/memerlukan skrip untuk WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!