web-dev-qa-db-fra.com

is_wp_error () et les erreurs de traitement

J'essaie de créer une fonction qui saisit les "lecteurs" de feedburner en utilisant wp_remote_get(). J'ai remarqué qu'il renvoyait fréquemment une valeur de 0.

J'ai d'abord supposé qu'il s'agissait d'une erreur WordPress (gérée par is_wp_error()) ou d'une faille avec wp_remote_get(). Mal choisi ..

Feedburner ne cessant de planter, j'ai donc utilisé un deuxième transitoire pour stocker un résultat (jamais 0) avec une expiration de 7 jours. La partie que je ne peux pas comprendre, c'est la gestion des erreurs avec is_wp_error(). Je dois forcer une erreur pour pouvoir la gérer correctement avant de la mettre en production.

Heres une illustration:

$result = wp_remote_get( 'http://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' . urlencode($username) );

if ( is_wp_error($result) )
    return false;

Quel est le meilleur moyen de forcer une erreur? Devrais-je utiliser new WP_error()?

1
VicePrez

WordPress peut être inconsistant que hen retourne un objet WP_Error et quand il ne fait que renvoyer false ou string(0) alors qu’il s’agissait d’une erreur. Je ne sais pas exactement ce que feedburner renvoie pour ne pas déclencher un WP_Error à partir de wp_remote_get() - mais si vous savez que wp_remote_get() renverra un WP_Error, je définirais simplement $result = new WP_Error( 'my-error' ); C'est le même objet que wp_remote_get() retournera en cas d'erreur.

4
Joe Hoyle