Rumah >Tutorial CMS >WordTekan >Pengenalan kepada kelas WP_ERROR
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.
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 contoh WP_Error
spesifik. Jika hanya kod ralat pertama yang diperlukan, fungsi lain yang berasingan tersedia. get_error_code()
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 gunakan WP_Error
. get_error_message( $code )
add( $code, $message, $data )
dan WP_Error
tidak diperlukan, pembolehubah $message
masih akan diisi. $data
$errors
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
WP_Error
is_wp_error()
is_wp_error( $thing )
$thing
WP_Error
dilaksanakan dalam aplikasi anda 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
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<code class="language-php">// 向远程 URL $url 发出请求 $response = wp_remote_post( $url, array( 'timeout' => 30, 'body' => array( 'foo' => 'bar' ) ) ); if ( is_wp_error( $response ) ) { echo 'ERROR: ' . $response->get_error_message(); } else { // 执行某些操作 }</code>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
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.
<code class="language-php">// 向远程 URL $url 发出请求 $response = wp_remote_post( $url, array( 'timeout' => 30, 'body' => array( 'foo' => 'bar' ) ) ); if ( is_wp_error( $response ) ) { echo 'ERROR: ' . $response->get_error_message(); } else { // 执行某些操作 }</code>
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:
<code class="language-php">function handle_form_submission() { // 在此处执行你的验证、nonce 等操作 // 实例化 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' ); } // 发送结果 if ( empty( $error->get_error_codes() ) ) { return true; // 没有错误 } // 有错误 return $error; }</code>
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!