web-dev-qa-db-fra.com

Comment ajouter des balises au type de message personnalisé?

J'ai un type de message personnalisé appelé portfolio et j'essaie d'y ajouter la taxonomie des tags, comment puis-je procéder?

25
Joe Bobby

Comme ceci: (où il est écrit "portfolio" est l'endroit où vous enregistrez la taxonomie dans un type de message

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>
15
chifliiiii

Ou simplement ajouter:

'taxonomies' => array('post_tag')

Un tableau de taxonomies enregistrées comme category ou post_tag qui sera utilisé avec ce type de publication. Ceci peut être utilisé à la place d'appeler directement register_taxonomy_for_object_type(). Les taxonomies personnalisées doivent encore être enregistrées avec register_taxonomy().

dans le tableau $args du fichier functions.php- dans lequel vous créez le type de publication personnalisé avec register_post_type() .

53
Marcus

Utilisez ceci:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};
4

Utilisez simplement ce code peut-être que cela vous aidera

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}
0
user25225

Méthode 1 (d'après les réponses ci-dessus: https://wordpress.stackexchange.com/a/106211/38771 )

Différents types de publication utiliseront les mêmes données de "balises" du type "publication" par défaut.

  • Avantages

    • Tout fonctionne (devrait) sortir de la boîte avec une seule ligne

    • Tous vos tags en un seul endroit dans le CMS

  • Inconvénients

    • Oubliez un CMS bien structuré/facile à utiliser - la liste des balises sur la page des types de publications personnalisées affichera toutes les balises (pas uniquement les balises utilisées dans les articles de type publication personnalisée) avec un nombre incorrect ...
    • Les modifications apportées à une balise affecteront les articles "post" par défaut, ainsi que les articles de type publication personnalisés (Supprimer une balise la supprime dans les deux types d'articles).
    • Plus difficile (voire impossible) de configurer une fonctionnalité de balise distincte: descriptions différentes, champs personnalisés, images, etc. (du moins pas sans beaucoup de codage personnalisé sur le code Wordpress principal) ...

Méthode 2 (d'après les réponses ci-dessus: https://wordpress.stackexchange.com/a/62263/38771 )

Différents types de publication utilisent différentes configuration/données de "balises".

  • Avantages

    • Créer des fonctionnalités différentes/clairement distinctes liées aux balises : modèles frontaux, fonctionnalités, filtres de requête, actions)
    • Assigne différentes données liées aux balises : données de champs ou même champs personnalisés
    • Mieux gérer les tags dans les CMS
      • Exemple : Éditer/Supprimer une balise "post" n'affectera pas la balise (nommée/slugged) des autres types de post
  • compromis

    Un peu plus de code à configurer

En vérité, ils constituent un moyen extrêmement puissant de regrouper divers éléments de différentes manières. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies

0
P-S