WP hooks navigation: Home/browse • Actions index • Filters index
To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).
The best way to understand what a hook does is to look at where it occurs in the source code.
do_action( "hook_name" )
apply_filters( "hook_name", "what_to_filter" )
.Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.
This hook occurs 4 times in this file.
Line | Code |
---|---|
2153 | $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) ); |
2154 | if ( $alias->term_group ) { |
2155 | // The alias we want is already in a group, so let's use that one. |
2156 | $term_group = $alias->term_group; |
2157 | } else { |
2158 | // The alias isn't in a group, so let's create a new one and firstly add the alias term to it. |
2159 | $term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms") + 1; |
2160 | do_action( 'edit_terms', $alias->term_id, $taxonomy ); |
2161 | $wpdb->update($wpdb->terms, compact('term_group'), array('term_id' => $alias->term_id) ); |
2162 | do_action( 'edited_terms', $alias->term_id, $taxonomy ); |
2163 | } |
2164 | } |
2165 |
|
2166 | if ( $term_id = term_exists($slug) ) { |
2167 | $existing_term = $wpdb->get_row( $wpdb->prepare( "SELECT name FROM $wpdb->terms WHERE term_id = %d", $term_id), ARRAY_A ); |
2168 | // We've got an existing term in the same taxonomy, which matches the name of the new term: |
2169 | if ( is_taxonomy_hierarchical($taxonomy) && $existing_term['name'] == $name && $exists = term_exists( (int) $term_id, $taxonomy ) ) { |
2170 | // Hierarchical, and it matches an existing term, Do not allow same "name" in the same level. |
2171 | $siblings = get_terms($taxonomy, array('fields' => 'names', 'get' => 'all', 'parent' => (int)$parent) ); |
Line | Code |
2198 | return new WP_Error('db_insert_error', __('Could not insert term into the database'), $wpdb->last_error); |
2199 | $term_id = (int) $wpdb->insert_id; |
2200 | } |
2201 |
|
2202 | // Seems unreachable, However, Is used in the case that a term name is provided, which sanitizes to an empty string. |
2203 | if ( empty($slug) ) { |
2204 | $slug = sanitize_title($slug, $term_id); |
2205 | do_action( 'edit_terms', $term_id, $taxonomy ); |
2206 | $wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) ); |
2207 | do_action( 'edited_terms', $term_id, $taxonomy ); |
2208 | } |
2209 |
|
2210 | $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 ) ); |
2211 |
|
2212 | if ( !empty($tt_id) ) |
2213 | return array('term_id' => $term_id, 'term_taxonomy_id' => $tt_id); |
2214 |
|
2215 | $wpdb->insert( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent') + array( 'count' => 0 ) ); |
2216 | $tt_id = (int) $wpdb->insert_id; |
Line | Code |
2556 | $alias = $wpdb->get_row( $wpdb->prepare( "SELECT term_id, term_group FROM $wpdb->terms WHERE slug = %s", $alias_of) ); |
2557 | if ( $alias->term_group ) { |
2558 | // The alias we want is already in a group, so let's use that one. |
2559 | $term_group = $alias->term_group; |
2560 | } else { |
2561 | // The alias isn't in a group, so let's create a new one and firstly add the alias term to it. |
2562 | $term_group = $wpdb->get_var("SELECT MAX(term_group) FROM $wpdb->terms") + 1; |
2563 | do_action( 'edit_terms', $alias->term_id, $taxonomy ); |
2564 | $wpdb->update( $wpdb->terms, compact('term_group'), array( 'term_id' => $alias->term_id ) ); |
2565 | do_action( 'edited_terms', $alias->term_id, $taxonomy ); |
2566 | } |
2567 | } |
2568 |
|
2569 | // Check $parent to see if it will cause a hierarchy loop |
2570 | $parent = apply_filters( 'wp_update_term_parent', $parent, $term_id, $taxonomy, compact( array_keys( $args ) ), $args ); |
2571 |
|
2572 | // Check for duplicate slug |
2573 | $id = $wpdb->get_var( $wpdb->prepare( "SELECT term_id FROM $wpdb->terms WHERE slug = %s", $slug ) ); |
2574 | if ( $id && ($id != $term_id) ) { |
Line | Code |
2579 | else |
2580 | return new WP_Error('duplicate_term_slug', sprintf(__('The slug “%s” is already in use by another term'), $slug)); |
2581 | } |
2582 | do_action( 'edit_terms', $term_id, $taxonomy ); |
2583 | $wpdb->update($wpdb->terms, compact( 'name', 'slug', 'term_group' ), compact( 'term_id' ) ); |
2584 | if ( empty($slug) ) { |
2585 | $slug = sanitize_title($name, $term_id); |
2586 | $wpdb->update( $wpdb->terms, compact( 'slug' ), compact( 'term_id' ) ); |
2587 | } |
2588 | do_action( 'edited_terms', $term_id, $taxonomy ); |
2589 |
|
2590 | $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) ); |
2591 | do_action( 'edit_term_taxonomy', $tt_id, $taxonomy ); |
2592 | $wpdb->update( $wpdb->term_taxonomy, compact( 'term_id', 'taxonomy', 'description', 'parent' ), array( 'term_taxonomy_id' => $tt_id ) ); |
2593 | do_action( 'edited_term_taxonomy', $tt_id, $taxonomy ); |
2594 |
|
2595 | do_action("edit_term", $term_id, $tt_id, $taxonomy); |
2596 | do_action("edit_$taxonomy", $term_id, $tt_id); |
2597 |
|