Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




_wp_ajax_add_hierarchical_term [ WordPress Function ]

_wp_ajax_add_hierarchical_term ( $action )
Defined at:



No description yet.

Source


<?php
function _wp_ajax_add_hierarchical_term$action ) {
    
$taxonomy get_taxonomy(substr($action4));
    
check_ajax_referer$action'_ajax_nonce-add-' $taxonomy->name );
    if ( !
current_user_can$taxonomy->cap->edit_terms ) )
        
wp_die( -);
    
$names explode(','$_POST['new'.$taxonomy->name]);
    
$parent = isset($_POST['new'.$taxonomy->name.'_parent']) ? (int) $_POST['new'.$taxonomy->name.'_parent'] : 0;
    if ( 
$parent )
        
$parent 0;
    if ( 
$taxonomy->name == 'category' )
        
$post_category = isset($_POST['post_category']) ? (array) $_POST['post_category'] : array();
    else
        
$post_category = ( isset($_POST['tax_input']) && isset($_POST['tax_input'][$taxonomy->name]) ) ? (array) $_POST['tax_input'][$taxonomy->name] : array();
    
$checked_categories array_map'absint', (array) $post_category );
    
$popular_ids wp_popular_terms_checklist($taxonomy->name010false);

    foreach ( 
$names as $cat_name ) {
        
$cat_name trim($cat_name);
        
$category_nicename sanitize_title($cat_name);
        if ( 
'' === $category_nicename )
            continue;
        if ( !
$cat_id term_exists$cat_name$taxonomy->name$parent ) )
            
$cat_id wp_insert_term$cat_name$taxonomy->name, array( 'parent' => $parent ) );
        if ( 
is_wp_error$cat_id ) )
            continue;
        else if ( 
is_array$cat_id ) )
            
$cat_id $cat_id['term_id'];
        
$checked_categories[] = $cat_id;
        if ( 
$parent // Do these all at once in a second
            
continue;
        
ob_start();
            
wp_terms_checklist0, array( 'taxonomy' => $taxonomy->name'descendants_and_self' => $cat_id'selected_cats' => $checked_categories'popular_cats' => $popular_ids ));
        
$data ob_get_contents();
        
ob_end_clean();
        
$add = array(
            
'what' => $taxonomy->name,
            
'id' => $cat_id,
            
'data' => str_replace( array("\n""\t"), ''$data),
            
'position' => -1
        
);
    }

    if ( 
$parent ) { // Foncy - replace the parent and all its children
        
$parent get_term$parent$taxonomy->name );
        
$term_id $parent->term_id;

        while ( 
$parent->parent ) { // get the top parent
            
$parent = &get_term$parent->parent$taxonomy->name );
            if ( 
is_wp_error$parent ) )
                break;
            
$term_id $parent->term_id;
        }

        
ob_start();
            
wp_terms_checklist0, array('taxonomy' => $taxonomy->name'descendants_and_self' => $term_id'selected_cats' => $checked_categories'popular_cats' => $popular_ids));
        
$data ob_get_contents();
        
ob_end_clean();
        
$add = array(
            
'what' => $taxonomy->name,
            
'id' => $term_id,
            
'data' => str_replace( array("\n""\t"), ''$data),
            
'position' => -1
        
);
    }

    
ob_start();
        
wp_dropdown_categories( array(
            
'taxonomy' => $taxonomy->name'hide_empty' => 0'name' => 'new'.$taxonomy->name.'_parent''orderby' => 'name',
            
'hierarchical' => 1'show_option_none' => '&mdash; '.$taxonomy->labels->parent_item.' &mdash;'
        
) );
    
$sup ob_get_contents();
    
ob_end_clean();
    
$add['supplemental'] = array( 'newcat_parent' => $sup );

    
$x = new WP_Ajax_Response$add );
    
$x->send();
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics