Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: edited_terms

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 4 times in this file.

Line Code
2046           $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) );
2047           if ( $alias->term_group ) {
2048                // The alias we want is already in a group, so let's use that one.
2049                $term_group = $alias->term_group;
2050           } else {
2051                // The alias isn't in a group, so let's create a new one and firstly add the alias term to it.
2052                $term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms") + 1;
2053                do_action( 'edit_terms', $alias->term_id );
2054                $wpdb->update($wpdb->terms, compact('term_group'), array('term_id' => $alias->term_id) );
2055                do_action( 'edited_terms', $alias->term_id );
2056           }
2057      }
2058
2059      if ( $term_id = term_exists($slug) ) {
2060           $existing_term = $wpdb->get_row( $wpdb->prepare( "SELECT name FROM $wpdb->terms WHERE term_id = %d", $term_id), ARRAY_A );
2061           // We've got an existing term in the same taxonomy, which matches the name of the new term:
2062           if ( is_taxonomy_hierarchical($taxonomy) && $existing_term['name'] == $name && $exists = term_exists( (int) $term_id, $taxonomy ) ) {
2063                // Hierarchical, and it matches an existing term, Do not allow same "name" in the same level.
2064                $siblings = get_terms($taxonomy, array('fields' => 'names', 'get' => 'all', 'parent' => (int)$parent) );
 
Line Code
2087                return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error);
2088           $term_id = (int) $wpdb->insert_id;
2089      }
2090
2091      // Seems unreachable, However, Is used in the case that a term name is provided, which sanitizes to an empty string.
2092      if ( empty($slug) ) {
2093           $slug = sanitize_title($slug, $term_id);
2094           do_action( 'edit_terms', $term_id );
2095           $wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) );
2096           do_action( 'edited_terms', $term_id );
2097      }
2098
2099      $tt_id = $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id ) );
2100
2101      if ( !empty($tt_id) )
2102           return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id);
2103
2104      $wpdb->insert( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent') + array( 'count' => 0 ) );
2105      $tt_id = (int) $wpdb->insert_id;
 
Line Code
2358           $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) );
2359           if ( $alias->term_group ) {
2360                // The alias we want is already in a group, so let's use that one.
2361                $term_group = $alias->term_group;
2362           } else {
2363                // The alias isn't in a group, so let's create a new one and firstly add the alias term to it.
2364                $term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms") + 1;
2365                do_action( 'edit_terms', $alias->term_id );
2366                $wpdb->update( $wpdb->terms, compact('term_group'), array( 'term_id' => $alias->term_id ) );
2367                do_action( 'edited_terms', $alias->term_id );
2368           }
2369      }
2370
2371      // Check $parent to see if it will cause a hierarchy loop
2372      $parent = apply_filters( 'wp_update_term_parent', $parent, $term_id, $taxonomy, compact( array_keys( $args ) ), $args );
2373
2374      // Check for duplicate slug
2375      $id = $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms WHERE slug = %s", $slug ) );
2376      if ( $id && ($id != $term_id) ) {
 
Line Code
2381           else
2382                return new WP_Error('duplicate_term_slug', sprintf(__('The slug “%s” is already in use by another term'), $slug));
2383      }
2384      do_action( 'edit_terms', $term_id );
2385      $wpdb->update($wpdb->terms, compact( 'name', 'slug', 'term_group' ), compact( 'term_id' ) );
2386      if ( empty($slug) ) {
2387           $slug = sanitize_title($name, $term_id);
2388           $wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) );
2389      }
2390      do_action( 'edited_terms', $term_id );
2391
2392      $tt_id = $wpdb->get_var( $wpdb->prepare( "SELECT tt.term_taxonomy_id FROM $wpdb->term_taxonomy AS tt INNER JOIN $wpdb->terms AS t ON tt.term_id = t.term_id WHERE tt.taxonomy = %s AND t.term_id = %d", $taxonomy, $term_id) );
2393      do_action( 'edit_term_taxonomy', $tt_id, $taxonomy );
2394      $wpdb->update( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent' ), array( 'term_taxonomy_id' => $tt_id ) );
2395      do_action( 'edited_term_taxonomy', $tt_id, $taxonomy );
2396
2397      do_action("edit_term", $term_id, $tt_id, $taxonomy);
2398      do_action("edit_$taxonomy", $term_id, $tt_id);
2399