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;
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;
}