web-dev-qa-db-fra.com

enregistrer automatiquement le titre de type d'article personnalisé en tant que catégorie

Je me demande s’il est possible de créer automatiquement une catégorie à partir de mon titre personnalisé. Par exemple, si je crée un article nommé "sport", la fonction créera automatiquement une catégorie - "sport".

2
Net Shapira

Accrochez-vous à save_post et vérifiez si la catégorie existe déjà (pour éviter la double création lors de la modification ultérieure). Si la catégorie n’existe pas, créez-la à l’aide de wp_insert_term et affectez la publication à l’aide de wp_set_object_terms

add_action('save_post', 'add_title_as_category');

function add_title_as_category( $postid ) {
  if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
  $post = get_post($postid);
  if ( $post->post_type == 'post') { // change 'post' to any cpt you want to target
    $term = get_term_by('slug', $post->post_name, 'category');
    if ( empty($term) ) {
      $add = wp_insert_term( $post->post_title, 'category', array('slug'=> $post->post_name) );
      if ( is_array($add) && isset($add['term_id']) ) {
        wp_set_object_terms($postid, $add['term_id'], 'category', true );
      }
    }
  }
}

Si vous souhaitez définir une taxonomie personnalisée à la place de la catégorie standard, remplacez 'category' par le nom de la taxonomie personnalisée, où il apparaît dans le code ci-dessus.

3
gmazzap