Now that is_taxonomy($taxonomy) function deprecated how do I know if a taxonomy exist? What's the alternative?

On a second note, the codex for wp_insert_term() says that if the taxonomy does not exist, an error is fired. Here, the "if taxonomy exists" part is ambiguous to me. Does that mean if the taxonomy has currently been registered with the registered_taxonomy or does that mean there is at least one term in the wp_term_taxonomy() table that's been associated with that taxonomy?

And my 3rd question final question is how do I catch an error when an error is raised by the wp_insert_term() function?

Would this work?

if (list($term_id,$taxonomy_id) = wp_insert_term(...)):
  //error here?

1 Answer 1


See Codex page for is_taxonomy

This function is deprecated as of Version 3.0. Please use taxonomy_exists instead.

wp_insert_term uses taxonomy_exists to check if the taxonomy exists. This means if the taxonomy is a registered taxonomy. (It would be odd if wp_insert_term only you allowed to add a term to taxonomies with existing terms :) )

To catch an error you can use is_wp_error. E.g.

$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>';
   list($term_id,$taxonomy_id) = $result;
  • Cool & thanks Stephen. What do you mean by "It would be odd if wp_insert_term only you allowed to add a term to taxonomies with existing terms". Apr 11, 2012 at 0:05
  • Also, can you address the error checking part of my question too? Apr 11, 2012 at 0:06
  • Done :). What I meant was that wp_insert_term is used to create taxonomy terms and it should be able to do that even if a taxonomy doesn't currently have any terms. Apr 11, 2012 at 0:16
  • Let's continue on this here > wordpress.stackexchange.com/questions/48572/… Apr 11, 2012 at 0:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.