2017-10-09 6 views
1

Ich habe eine benutzerdefinierte Beitragstyp namens "Produkte" mit benutzerdefinierten Taxonomie "Autor". Jetzt habe ich einen anderen benutzerdefinierten Beitragstyp namens "Autoren".Wordpress: Wenn ich einen Beitrag hinzufügen, wird der Begriff automatisch erstellt?

Und ich möchte das: Wenn ich einen neuen Beitrag in meinem Beitrag "Autoren" veröffentlichen, dann wird automatisch ein neuer Begriff mit dem gleichen Titel in meiner Taxonomie "Autor" erstellt. Wäre es möglich?

Danke für Ihre Hilfe.

Antwort

2

Bitte versuchen Sie dies möglicherweise dies wird Ihnen helfen.

function update_custom_terms($post_id) { 

    // only update terms if it's a authors post 
    if ('authors' != get_post_type($post_id)) { 
    return; 
    } 

    // don't create or update terms for system generated posts 
    if (get_post_status($post_id) == 'auto-draft') { 
    return; 
    } 

    /* 
    * Grab the post title and slug to use as the new 
    * or updated term name and slug 
    */ 
    $term_title = get_the_title($post_id); 
    $term_slug = get_post($post_id)->post_name; 

    /* 
    * Check if a corresponding term already exists by comparing 
    * the post ID to all existing term descriptions. 
    */ 
    $existing_terms = get_terms('author', array(
    'hide_empty' => false 
    ) 
); 

    foreach($existing_terms as $term) { 
    if ($term->description == $post_id) { 
     //term already exists, so update it and we're done 
     wp_update_term($term->term_id, 'author', array(
     'name' => $term_title, 
     'slug' => $term_slug 
     ) 
    ); 
     return; 
    } 
    } 

    /* 
    * If we didn't find a match above, this is a new post, 
    * so create a new term. 
    */ 
    wp_insert_term($term_title, 'author', array(
    'slug' => $term_slug, 
    'description' => $post_id 
    ) 
); 
} 

//run the update function whenever a post is created or edited 
add_action('save_post', 'update_custom_terms'); 
+0

Es funktioniert ausgezeichnet! Vielen Dank mein Freund! – admiva

Verwandte Themen