kelas wp_error untuk wordpress: mekanisme pengendalian ralat elegan
Kelas WordPress WP_Error
menyediakan mekanisme pengendalian ralat yang mudah dan kuat untuk menguruskan dan mengubahsuai kesilapan dalam aplikasi. Adalah mudah untuk mengintegrasikan ke dalam aplikasi anda, dengan berkesan mengendalikan ralat yang dikembalikan oleh fungsi teras WordPress, dan mewujudkan mesej ralat tersuai untuk meningkatkan pengalaman pengguna. Di samping itu, fungsi praktikal seperti is_wp_error
boleh menyemak sama ada nilai pulangan pembolehubah atau fungsi adalah contoh WP_Error
, dengan itu menyahpepijat masalah dengan cekap.
Tidak kira betapa mahir dan teliti kod anda ditulis, kesilapan tidak dapat dielakkan dalam sebarang proses pembangunan. Sebagai pemaju WordPress, adalah tanggungjawab anda untuk memastikan semua kesilapan kod dikendalikan dengan betul tanpa menjejaskan pengguna akhir. WordPress dilengkapi dengan kelas pengendalian ralat asas WP_Error
, yang boleh diintegrasikan ke dalam kod anda untuk pengendalian ralat asas.
Tutorial ini akan meneroka struktur asas dan prinsip kerja kelas WP_Error
, dan yang paling penting, kami akan memperkenalkan bagaimana untuk mengintegrasikan kelas WP_Error
dalam permohonan anda.
Penjelasan terperinci mengenai kategori WP_Error
Kelas mempunyai struktur mudah tetapi fungsi yang kuat, yang cukup untuk digunakan sebagai mekanisme pengendalian ralat untuk pemalam. Kod sumbernya terletak di dalam fail WP_Error
. Mari kita lihat sifat dan kaedahnya. wp-includes/class-wp-error.php
Terdapat hanya dua atribut peribadi: WP_Error
dan $errors
. $error_data
digunakan untuk menyimpan mesej ralat yang berkaitan, manakala $errors
digunakan secara pilihan untuk menyimpan data yang relevan yang anda ingin akses kemudian. $error_data
Gunakan pasangan nilai kunci mudah untuk menyimpan ralat dan data yang berkaitan ke dalam objek, jadi kekunci yang ditakrifkan dalam WP_Error
mestilah unik untuk mengelakkan penggantian kekunci yang ditakrifkan sebelumnya. WP_Error
menyediakan beberapa cara untuk mengubah suai kedua -dua sifat yang terkandung di dalamnya. Mari kita lihat beberapa: WP_Error
-
get_error_codes()
: Mengembalikan semua kod ralat yang tersedia untuk contohWP_Error
spesifik. Jika hanya kod ralat pertama yang diperlukan, fungsi lain yang berasingan tersedia.get_error_code()
- : Jika
get_error_messages( $code )
tidak disediakan, fungsi itu hanya akan mengembalikan semua mesej yang disimpan dalam contoh$code
spesifik. Begitu juga, jika anda hanya perlu mengembalikan mesej dengan kod ralat tertentu, hanya gunakanWP_Error
.get_error_message( $code )
- : Fungsi ini amat berguna apabila anda ingin mengubah suai kesilapan yang disimpan dalam objek Instantiated . Ambil perhatian bahawa walaupun
add( $code, $message, $data )
danWP_Error
tidak diperlukan, pembolehubah$message
masih akan diisi.$data
$errors
: Jika anda hanya mahu mengubah suai harta - berada dalam kedudukan kedua, bertentangan dengan kaedah
add_data( $data, $code)
. Jika$error_data
tidak disediakan, data ralat akan ditambah ke kod ralat pertama.$code
add
$code
: Ini adalah kaedah baru yang baru -baru ini ditambah dalam WordPress 4.1, yang menghilangkan semua mesej ralat dan data yang berkaitan dengan kunci tertentu. -
remove( $code )
fungsi
? Anda boleh menyemak menggunakan fungsi utiliti
yang mengembalikan benar atau palsu berdasarkan pembolehubah yang diberikan.
WP_Error
is_wp_error()
- adalah contoh
- , jika tidak, pulangan palsu.
is_wp_error( $thing )
$thing
WP_Error
dilaksanakan dalam aplikasi anda
Hanya faham bagaimana WP_Error
berfungsi secara dalaman, anda juga perlu belajar bagaimana untuk melaksanakannya dengan baik dalam permohonan anda sendiri. Mari ambil beberapa contoh untuk lebih memahami bagaimana ia berfungsi.
ralat pemprosesan yang dikembalikan oleh fungsi teras WordPress WP_Error
Sebagai contoh,
adalah fungsi yang sangat berguna yang boleh kita gunakan untuk membuat permintaan pos jauh ke URL tertentu. Walau bagaimanapun, kami tidak boleh mengharapkan URL jauh sentiasa boleh diakses, atau permintaan kami sentiasa berjaya. Kami tahu dari halaman manual bahawa fungsi ini akan kembali
apabila ia gagal. Pengetahuan ini akan membantu kami untuk melaksanakan pengendalian ralat dengan betul dalam permohonan kami.
wp_remote_post
sila lihat kod ini: WP_Error
seperti yang anda lihat, kami melakukan permintaan pos jauh ke
. Walau bagaimanapun, bukannya hanya mendapatkan data// 向遠(yuǎn)程 URL $url 發(fā)出請求 $response = wp_remote_post( $url, array( 'timeout' => 30, 'body' => array( 'foo' => 'bar' ) ) ); if ( is_wp_error( $response ) ) { echo 'ERROR: ' . $response->get_error_message(); } else { // 執(zhí)行某些操作 }seperti itu, kami melakukan beberapa cek menggunakan fungsi mudah
yang diperkenalkan sebelum ini. Jika semuanya berfungsi, kita boleh terus melakukan apa yang kita mahu lakukan dengan $url
. $response
Kembalikan ralat tersuai dalam aplikasi anda
Katakan anda mempunyai fungsi tersuai yang mengendalikan penyerahan borang hubungan, bernama handle_form_submission
. Katakan kami menyediakan borang tersuai di suatu tempat, mari lihat bagaimana kami dapat memperbaiki fungsi dengan melaksanakan keupayaan pengendalian ralat kami sendiri.
// 向遠(yuǎn)程 URL $url 發(fā)出請求 $response = wp_remote_post( $url, array( 'timeout' => 30, 'body' => array( 'foo' => 'bar' ) ) ); if ( is_wp_error( $response ) ) { echo 'ERROR: ' . $response->get_error_message(); } else { // 執(zhí)行某些操作 }
Sudah tentu, anda juga perlu melaksanakan pembersihan dan pengesahan anda sendiri dalam fungsi ini, tetapi ini tidak dalam skop tutorial ini. Sekarang, mengetahui bahawa kita betul mengembalikan contoh WP_Error
apabila kita berasaskan ralat, kita boleh menggunakannya untuk memberikan mesej ralat yang lebih bermakna kepada pengguna akhir.
Katakan terdapat bahagian tertentu dalam aplikasi anda yang memaparkan kesilapan penyerahan bentuk, anda boleh melakukan ini:
function handle_form_submission() { // 在此處執(zhí)行你的驗(yàn)證、nonce 等操作 // 實(shí)例化 WP_Error 對象 $error = new WP_Error(); // 確保用戶提供名字 if ( empty( $_POST['first_name'] ) ) { $error->add( 'empty', 'First name is required' ); } // 也需要姓氏 if ( empty( $_POST['last_name'] ) ) { $error->add( 'empty', 'Last name is required' ); } // 檢查電子郵件地址 if ( empty( $_POST['email'] ) ) { $error->add( 'empty', 'Email is required' ); } elseif ( ! is_email( $_POST['email'] ) ) { $error->add( 'invalid', 'Email address must be valid' ); } // 最后,檢查消息 if ( empty( $_POST['message'] ) ) { $error->add( 'empty', 'Your message is required' ); } // 發(fā)送結(jié)果 if ( empty( $error->get_error_codes() ) ) { return true; // 沒有錯誤 } // 有錯誤 return $error; }
Ringkasan
Berusaha untuk cemerlang dalam pembangunan perisian juga bermakna mengetahui apa yang perlu dilakukan apabila kod anda tidak dapat melakukan apa yang harus dilakukan, dan memastikan aplikasi anda dapat mengendalikannya dengan anggun.
untuk WordPress, menggunakan kelas yang disertakan WP_Error
menyediakan pelaksanaan pengendalian ralat yang cukup mudah tetapi berkuasa yang boleh anda susun ke dalam aplikasi anda.
(rujukan luaran dan bahagian Soalan Lazim dalam teks asal ditinggalkan di sini kerana mereka adalah salinan langsung teks asal dan tidak memenuhi keperluan pseudo-asal.)
Atas ialah kandungan terperinci Pengenalan kepada kelas WP_ERROR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Sebab-sebab utama mengapa WordPress menyebabkan lonjakan dalam penggunaan CPU pelayan termasuk masalah pemalam, pertanyaan pangkalan data yang tidak cekap, kualiti kod tema yang buruk, atau lonjakan trafik. 1. 2. Masukkan mod penyelesaian masalah untuk secara beransur-ansur membolehkan pemalam untuk menyelesaikan masalah kesesakan prestasi, gunakan QueryMonitor untuk menganalisis pelaksanaan pemalam dan memadam atau menggantikan pemalam yang tidak cekap; 3. Pasang pemalam cache, bersihkan data berlebihan, menganalisis log pertanyaan perlahan untuk mengoptimumkan pangkalan data; 4. Periksa sama ada topik itu mempunyai masalah seperti kandungan beban, pertanyaan kompleks, atau kekurangan mekanisme caching. Adalah disyorkan untuk menggunakan ujian topik standard untuk membandingkan dan mengoptimumkan logik kod. Ikuti langkah -langkah di atas untuk memeriksa dan menyelesaikan lokasi dan selesaikan masalah satu demi satu.

Fail JavaScript Minive boleh meningkatkan kelajuan memuatkan laman web WordPress dengan mengeluarkan kosong, komen, dan kod yang tidak berguna. 1. Gunakan pemalam cache yang menyokong penggabungan mampatan, seperti w3totalcache, aktifkan dan pilih mod mampatan dalam pilihan "Minify"; 2. Gunakan plug-in mampatan khusus seperti fastvelocityminify untuk memberikan lebih banyak kawalan berbutir; 3. Secara manual memampatkan fail JS dan memuat naiknya melalui FTP, sesuai untuk pengguna yang biasa dengan alat pembangunan. Perhatikan bahawa beberapa tema atau skrip plug-in mungkin bertentangan dengan fungsi mampatan, dan anda perlu menguji fungsi laman web dengan teliti selepas pengaktifan.

Cara yang paling berkesan untuk mengelakkan spam komen adalah untuk mengenal pasti dan memintasnya secara automatik melalui cara programatik. 1. Menggunakan mekanisme kod pengesahan (seperti Googler Captcha atau HCaptcha) untuk membezakan secara berkesan antara manusia dan robot, terutama yang sesuai untuk laman web awam; 2. Tetapkan bidang tersembunyi (teknologi honeypot), dan gunakan robot untuk mengisi ciri -ciri secara automatik untuk mengenal pasti komen spam tanpa menjejaskan pengalaman pengguna; 3. Semak senarai hitam Kata Kunci Kandungan Komen, maklumat spam penapis melalui pemadanan kata yang sensitif, dan perhatikan untuk mengelakkan salah faham; 4. Hakim kekerapan dan sumber IP komen, hadkan bilangan penyerahan per unit masa dan buat senarai hitam; 5. Gunakan perkhidmatan anti-spam pihak ketiga (seperti Akismet, CloudFlare) untuk meningkatkan ketepatan pengenalan. Boleh berdasarkan laman web

Apabila membangunkan blok gutenberg, kaedah aset enqueue yang betul termasuk: 1. Gunakan daftar_block_type untuk menentukan laluan editor_script, editor_style dan gaya; 2. Daftar sumber melalui wp_register_script dan wp_register_style dalam fungsi.php atau plug-in, dan tetapkan kebergantungan dan versi yang betul; 3. Konfigurasikan alat binaan untuk mengeluarkan format modul yang sesuai dan pastikan laluan itu konsisten; 4. Kawalan logik pemuatan gaya depan melalui add_theme_support atau enqueue_block_assets untuk memastikan logik pemuatan gaya front-end dipastikan.

Untuk menambah medan pengguna tersuai, anda perlu memilih kaedah lanjutan mengikut platform dan memberi perhatian kepada pengesahan data dan kawalan kebenaran. Amalan umum termasuk: 1. Gunakan jadual tambahan atau pasangan nilai utama pangkalan data untuk menyimpan maklumat; 2. Tambah kotak input ke hujung depan dan diintegrasikan dengan hujung belakang; 3. Mengatasi Pemeriksaan Format dan Kebenaran Akses untuk Data Sensitif; 4. Kemas kini antara muka dan templat untuk menyokong paparan dan penyuntingan medan baru, sambil mengambil kira penyesuaian mudah alih dan pengalaman pengguna.

Kunci untuk menambah peraturan penulisan semula tersuai di WordPress adalah dengan menggunakan fungsi add_rewrite_rule dan pastikan peraturan berkuatkuasa dengan betul. 1. Gunakan add_rewrite_rule untuk mendaftarkan peraturan, formatnya adalah add_rewrite_rule ($ regex, $ redirect, $ selepas), di mana $ regex adalah url yang sepadan dengan ungkapan biasa, $ redirect menentukan pertanyaan sebenar, dan $ selepas mengawal lokasi peraturan; 2. Pembolehubah pertanyaan tersuai perlu ditambah melalui add_filter; 3. Selepas pengubahsuaian, tetapan pautan tetap mesti disegarkan semula; 4. Adalah disyorkan untuk meletakkan peraturan di 'atas' untuk mengelakkan konflik; 5. Anda boleh menggunakan pemalam untuk melihat peraturan semasa untuk kemudahan

Robots.txt adalah penting untuk SEO laman web WordPress, dan boleh membimbing enjin carian untuk merangkak tingkah laku, mengelakkan kandungan pendua dan meningkatkan kecekapan. 1. Laluan sistem blok seperti /wp-admin /dan /wp-termasuk /, tetapi elakkan secara tidak sengaja menyekat /muat naik /direktori; 2. Tambah laluan sitemap seperti sitemap: https://yourdomain.com/sitemap.xml untuk membantu enjin carian dengan cepat menemui peta tapak; 3. Had / halaman / dan URL dengan parameter untuk mengurangkan sisa crawler, tetapi berhati -hati untuk tidak menyekat halaman arkib penting; 4. Elakkan kesilapan biasa seperti secara tidak sengaja menyekat seluruh tapak, pemalam cache yang mempengaruhi kemas kini, dan mengabaikan pemadanan terminal mudah alih dan subdomain.

1. Gunakan Analisis Prestasi Plug-in untuk mencari masalah dengan cepat. Sebagai contoh, querymonitor boleh melihat bilangan pertanyaan pangkalan data dan ralat PHP, BlackBoxProfiler menjana laporan pelaksanaan fungsi, dan NewRelic menyediakan analisis peringkat pelayan; 2. Menganalisis prestasi pelaksanaan PHP memerlukan memeriksa fungsi yang memakan masa, penggunaan alat debugging dan peruntukan memori, seperti Xdebug menjana graf api untuk membantu pengoptimuman; 3. Memantau kecekapan pertanyaan pangkalan data boleh diperiksa melalui log pertanyaan perlahan dan pemeriksaan indeks, pertanyaan Querymonitor boleh menyenaraikan semua SQL dan disusun mengikut masa; 4. Menggabungkan alat luaran seperti GooglepagesPeedInsights, Gtmetrix dan WebpageTest untuk menilai front-end Plus
