La classe WP_Error
de WordPress fournit un mécanisme de gestion des erreurs simple et puissant pour gérer et modifier les erreurs dans les applications. Il est facile à intégrer dans votre application, gère efficacement les erreurs renvoyées par WordPress Core Fonctions et crée des messages d'erreur personnalisés pour améliorer l'expérience utilisateur. De plus, des fonctions pratiques telles que is_wp_error
peuvent vérifier si la valeur de retour de la variable ou de la fonction est une instance de WP_Error
, ce qui débogue efficacement les problèmes.
, peu importe à quel point votre code est écrit et méticuleux, les erreurs ne peuvent être évitées dans aucun processus de développement. En tant que développeur WordPress, il est de votre responsabilité de vous assurer que toutes les erreurs de code sont correctement gérées sans affecter l'utilisateur final. WordPress est livré avec une classe de gestion des erreurs de base WP_Error
, qui peut être intégrée dans votre code pour la gestion des erreurs de base.
Ce tutoriel explorera la structure de base et les principes de travail des classes WP_Error
, et surtout, nous présenterons comment intégrer les classes WP_Error
dans votre application.
WP_Error
Explication détaillée de la catégorie WP_Error
La classe a une structure simple mais une fonction puissante, ce qui est suffisant pour être utilisé comme mécanisme de gestion des erreurs pour les plug-ins. Son code source est situé dans le fichier wp-includes/class-wp-error.php
. Jetons un coup d'œil à ses propriétés et méthodes.
WP_Error
Il n'y a que deux attributs privés: $errors
et $error_data
. $errors
est utilisé pour stocker des messages d'erreur connexes, tandis que $error_data
est éventuellement utilisé pour stocker les données pertinentes auxquelles vous souhaitez accéder plus tard. WP_Error
Utilisez des paires de valeurs clés simples pour stocker des erreurs et des données connexes dans un objet, de sorte que les touches définies dans WP_Error
doivent être uniques pour éviter l'écrasement des touches précédemment définies.
WP_Error
fournit plusieurs façons de modifier les deux propriétés qu'il contient. Regardons quelques-uns:
get_error_codes()
: Renvoie tous les codes d'erreur disponibles pour une instance WP_Error
spécifique. Si seul le premier code d'erreur est nécessaire, une autre fonction distincte est disponible. get_error_code()
get_error_messages( $code )
n'est pas fourni, la fonction renvoie simplement tous les messages stockés dans l'instance spécifique $code
. De même, si vous n'avez besoin que de renvoyer un message avec un code d'erreur spécifique, utilisez simplement WP_Error
. get_error_message( $code )
add( $code, $message, $data )
instanciés. Notez que même si WP_Error
et $message
ne sont pas nécessaires, les variables $data
seront toujours remplies. $errors
add_data( $data, $code)
, vous pouvez utiliser cette fonction. Notez que le paramètre $error_data
est en deuxième position, en face de la méthode $code
. Si add
n'est pas fourni, les données d'erreur seront ajoutées au premier code d'erreur. $code
remove( $code )
? Vous pouvez vérifier l'utilisation d'une fonction utilitaire WP_Error
qui renvoie True ou Faux en fonction de la variable donnée. is_wp_error()
is_wp_error( $thing )
est une instance de $thing
, sinon renvoyez false. WP_Error
WP_Error
fonctionne en interne, vous devez également apprendre à bien l'implémenter dans votre propre application. Prenons quelques exemples pour mieux comprendre comment cela fonctionne. WP_Error
par exemple,
est une fonction très utile que nous pouvons utiliser pour faire une demande de poste distant à une URL spécifique. Cependant, nous ne pouvons pas nous attendre à ce que l'URL distante soit toujours accessible, ou nos demandes sont toujours réussies. Nous savons sur la page manuelle que cette fonction renvoie wp_remote_post
quand elle échoue. Ces connaissances nous aideront à implémenter correctement le traitement des erreurs dans notre application. WP_Error
// 向远程 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 { // 执行某些操作 }
. Cependant, au lieu d'obtenir simplement les données $url
telles quelles, nous effectuons quelques vérifications en utilisant la fonction pratique $response
introduite plus tôt. Si tout fonctionne, nous pouvons continuer à faire ce que nous voulons faire avec is_wp_error
. $response
Supposons que vous ayez une fonction personnalisée qui gère la soumission d'un formulaire de contact, nommé handle_form_submission
. Supposons que nous configurons un formulaire personnalisé quelque part, voyons comment nous pouvons améliorer la fonction en implémentant nos propres capacités de gestion des erreurs.
// 向远程 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 { // 执行某些操作 }
Bien sûr, vous devez également implémenter votre propre nettoyage et vérification dans ces fonctions, mais ce n'est pas dans le cadre de ce tutoriel. Maintenant, sachant que nous renvoyons correctement l'instance WP_Error
Lorsque nous sommes basés sur des erreurs, nous pouvons l'utiliser pour fournir des messages d'erreur plus significatifs à l'utilisateur final.
Supposons qu'il existe une partie spécifique dans votre application qui affiche les erreurs de soumission de formulaire, vous pouvez le faire:
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; }
s'efforcer d'exceller dans le développement de logiciels signifie également savoir quoi faire lorsque votre code ne peut pas faire ce qu'il doit faire et s'assurer que votre application peut le gérer gracieusement.
Pour WordPress, l'utilisation de la classe incluse WP_Error
Fournit une implémentation de gestion des erreurs assez simple mais puissante que vous pouvez intégrer dans votre application.
(Les références externes et les sections FAQ dans le texte d'origine sont omises ici car ce sont des copies directes du texte d'origine et ne répondent pas aux exigences de la pseudo-oginalité.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!