web-dev-qa-db-fra.com

is_taxonomy est obsolète. Quelle est l'alternative?

Maintenant que la fonction is_taxonomy($taxonomy) est déconseillée, comment savoir s'il existe une taxonomie? Quelle est l'alternative?

Sur une deuxième note, le codex pour wp_insert_term() dit que si la taxonomie n’existe pas, une erreur est déclenchée. Ici, la partie "si la taxonomie existe" m’est ambiguë. Cela signifie-t-il si la taxonomie a déjà été enregistrée auprès de registered_taxonomy ou si cela signifie qu'au moins un terme de la table wp_term_taxonomy() a été associé à cette taxonomie?

Et ma troisième question est la suivante: comment puis-je intercepter une erreur lorsqu'une erreur est générée par la fonction wp_insert_term()?

Cela fonctionnerait-il?

if (list($term_id,$taxonomy_id) = wp_insert_term(...)):
else:
  //error here?
endif;
1
Average Joe

Voir la page Codex pour is_taxonomy

Cette fonction est obsolète à partir de la version 3.0. Veuillez utiliser taxonomy_exists à la place.

wp_insert_term utilise taxonomy_exists pour vérifier si la taxonomie existe. Cela signifie que si la taxonomie est une taxonomie enregistrée . (Il serait étrange que wp_insert_term seul vous permette d'ajouter un terme aux taxonomies avec des termes existants :))

Pour intercepter une erreur, vous pouvez utiliser is_wp_error . Par exemple.

$result = wp_insert_term(...);
if ( is_wp_error( $result ) ) {
   $error_string = $result->get_error_message();
   echo '<div id="message" class="error"><p>' . $error_string . '</p> </div>';
}else{
   list($term_id,$taxonomy_id) = $result;
 }
1
Stephen Harris