Maison > Tutoriel CMS > WordPresse > Une introduction à la classe WP_ERROR

Une introduction à la classe WP_ERROR

Jennifer Aniston
Libérer: 2025-02-17 09:55:16
original
312 Les gens l'ont consulté

Classe WP_ERROR pour WordPress: Mécanisme de gestion des erreurs élégant

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.

An Introduction to the WP_Error Class

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.

Propriétés

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.

Méthode

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()
  • : Si 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 )
  • : Cette fonction est particulièrement utile lorsque vous souhaitez modifier les erreurs stockées dans des objets 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
  • : Si vous souhaitez seulement modifier la propriété 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
  • : Il s'agit d'une nouvelle méthode récemment ajoutée dans WordPress 4.1, qui supprime tous les messages d'erreur et données associés à une clé spécifique. remove( $code )
fonction

Comment savez-vous si la variable ou les données spécifiques renvoyées par une fonction est une instance de

? 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()

  • : Renvoie true si is_wp_error( $thing ) est une instance de $thing, sinon renvoyez false. WP_Error
implémenter dans votre application

WP_Error

comprendre simplement comment

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

Erreurs de traitement renvoyées par la fonction de base WordPress

WordPress fournit de nombreuses fonctions pratiques qui peuvent être utilisées pour accélérer notre processus de développement. La plupart des fonctions sont également équipées de fonctions de gestion des erreurs de base que nous pouvons utiliser.

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

Veuillez consulter ce code:

// 向远程 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 {
    // 执行某些操作
}
Copier après la connexion
Copier après la connexion
Comme vous pouvez le voir, nous effectuons une demande de poste distante à

. 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

Renvoie une erreur personnalisée dans votre application

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 {
    // 执行某些操作
}
Copier après la connexion
Copier après la connexion

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;
}
Copier après la connexion

Résumé

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal