wp_ajax_add_tag()
Ajax handler to add a tag.
Source
File: wp-admin/includes/ajax-actions.php
function wp_ajax_add_tag() {
check_ajax_referer( 'add-tag', '_wpnonce_add-tag' );
$taxonomy = !empty($_POST['taxonomy']) ? $_POST['taxonomy'] : 'post_tag';
$tax = get_taxonomy($taxonomy);
if ( !current_user_can( $tax->cap->edit_terms ) )
wp_die( -1 );
$x = new WP_Ajax_Response();
$tag = wp_insert_term($_POST['tag-name'], $taxonomy, $_POST );
if ( !$tag || is_wp_error($tag) || (!$tag = get_term( $tag['term_id'], $taxonomy )) ) {
$message = __('An error has occurred. Please reload the page and try again.');
if ( is_wp_error($tag) && $tag->get_error_message() )
$message = $tag->get_error_message();
$x->add( array(
'what' => 'taxonomy',
'data' => new WP_Error('error', $message )
) );
$x->send();
}
$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => $_POST['screen'] ) );
$level = 0;
if ( is_taxonomy_hierarchical($taxonomy) ) {
$level = count( get_ancestors( $tag->term_id, $taxonomy, 'taxonomy' ) );
ob_start();
$wp_list_table->single_row( $tag, $level );
$noparents = ob_get_clean();
}
ob_start();
$wp_list_table->single_row( $tag );
$parents = ob_get_clean();
$x->add( array(
'what' => 'taxonomy',
'supplemental' => compact('parents', 'noparents')
) );
$x->add( array(
'what' => 'term',
'position' => $level,
'supplemental' => (array) $tag
) );
$x->send();
}
Changelog
Version | Description |
---|---|
WP-3.1.0 | Introduced. |