Come aggiungere tag al tipo di post personalizzato?


28

Ho un tipo di post personalizzato chiamato portfolioe sto provando ad aggiungere i tag tassonomia ad esso, come posso fare?


@chifliiiii se lo faccio, le Categorie e i Tag sono gli stessi di quelli usati per i Post. Come posso ottenere categorie e tag esclusivi per il nuovo tipo di post?
Troy Templeman,

@chifliiiii Come visualizzare i tag nel modello?
Max

Risposte:


15

In questo modo: (dove dice "portfolio" è dove si registra la tassonomia in un tipo di post

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' ),
  ));
}
?>

@JoeBobby probabilmente varrebbe la pena dare un'occhiata alla pagina del Codex di WordPress per la registrazione delle tassonomie per avere un'idea
Stephen S.

8
Solo una nota che sta creando una tassonomia completamente nuova chiamata 'tag' invece di aggiungere la tassonomia 'post_tag' esistente al tipo di post personalizzato.
Jake,

@chifliiiii come ottenere questi tag in post singola pagina con collegamenti tag, come creare un modello per tag page
Dinesh

1
Sono d'accordo con Jake, penso che questo non risolva il problema. La risposta di @Marcus dovrebbe essere quella contrassegnata come accettata.
Craig Wayne,

58

O aggiungi semplicemente:

'taxonomies' => array('post_tag')

Una serie di tassonomie registrate come categoryo post_tagche verranno utilizzate con questo tipo di post. Questo può essere usato al posto di chiamare register_taxonomy_for_object_type()direttamente. Le tassonomie personalizzate devono ancora essere registrate con register_taxonomy().

alla $argsmatrice nella functions.php-file in cui si crea il tipo di messaggio personalizzato con register_post_type().


2
Aggiungi una spiegazione alla tua risposta: perché potrebbe risolvere il problema?
fuxia

5

Usa questo:

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

1

Metodo 1 (dalle risposte sopra: https://wordpress.stackexchange.com/a/106211/38771 )

Diversi tipi di post utilizzeranno gli stessi dati "Tag" del tipo "post" predefinito.

  • Benefici

    • Tutto (dovrebbe) funziona fuori dalla scatola con una riga

    • Tutti i tag in un unico posto nel CMS

  • Svantaggi

    • Dimentica un CMS ben strutturato / facile da usare: l'elenco dei tag nella pagina dei tipi di post personalizzati mostrerà tutti i tag (non solo i tag utilizzati negli articoli dei tipi di post personalizzati) con il conteggio errato ...
    • Le modifiche a un tag influiranno sugli articoli "post" predefiniti e sugli articoli del tipo di post personalizzati (Elimina un tag lo elimina in entrambi i tipi di articoli)
    • Più difficile (forse impossibile) impostare qualsiasi funzionalità di Tag distinta: diverse descrizioni, campi personalizzati, immagini, ecc. (Almeno non senza molta codifica personalizzata in cima al codice principale di Wordpress) ...

Metodo 2 (dalle risposte sopra: https://wordpress.stackexchange.com/a/62263/38771 )

Tipi di post diversi utilizzano differenti configurazioni / dati "Tag".

  • Benefici

    • Crea funzionalità relative ai tag diverse / chiaramente distinte : modelli di frontend, funzionalità, filtri di query, azioni)
    • Assegna diversi dati relativi ai tag : dati dei campi o persino campi personalizzati
    • Gestisci i tag meglio in CMS
      • Esempio : la modifica / eliminazione di un tag "post" non influisce sul tag (simile a quello / slugged) per gli altri tipi di post
  • Scambio

    Un po 'più di codice da configurare

In verità, sono un modo estremamente potente per raggruppare vari oggetti in tutti i modi. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


Ecco un caso per il Metodo 1: un grande sito web sportivo, che copre numerosi argomenti / campionati / sport con tag, ad esempio "NBA", "NHL", "Basketball", "Olympics", "Steroids", "College", ecc. Non ha senso duplicare e gestire quali potrebbero essere +100 tag e 4 tipi di post (tipo di post predefinito e 3 tipi di post personalizzati). Per quanto riguarda gli aspetti negativi, se i dati di conteggio dei tag sono così speciali, è possibile creare una vista personalizzata. Per quanto riguarda tag personalizzati simili per tipo di post, non sembra esserci ancora alcuna ovvia necessità (cercare di pensare a uno ... bisogno di esempi).
MarsAndBack

Sì, ma non ci saranno automaticamente permalink di tag diversi per diversi tipi di post. Un tag "playoff" avrà "/ tag / playoff" per tutti i tipi di post. Quindi devi impostare le regole di riscrittura o utilizzare i parametri GET per creare diversi permalink ... Con una tassonomia diversa per ogni tipo di post, ogni tag "playoffs" per ogni tipo di post avrà il proprio permalink, che può essere personalizzato usando il modello di Wordpress Gerarchia. Va bene se diverse pagine di "playoff" sono diverse per NBA, NHL ... Ho lavorato su un sito con quel livello di personalizzazione per le tassonomie (campi personalizzati, immagine della tassonomia, descrizione)
PS

1
Capisco quello che stai dicendo. Quindi, se utilizzi tassonomie di tag diverse per CPT, che ne dici di renderlo tale quando aggiungi / modifichi un termine in un'imposta, questo viene modificato in termini unici di altre imposte, cioè sincronizzati tra le imposte. ad esempio, definire "Basketball" una volta, diciamo in Imposta tag tag, quindi una volta premuto Salva, quindi "Basketball" viene creato in modo univoco su altre imposte per CPT. Quindi inserisci / modifica un tag una volta e la modifica si riflette su più imposte di tag. Alla fine ottieni la gestione dei tag in una destinazione, più una situazione permalink più desiderabile.
MarsAndBack

Sì, sarebbe effettivamente un ottimo metodo se il sito condividesse le stesse informazioni di base sulle tassonomie (titolo) per più CPT, oltre a dare la possibilità di personalizzare ulteriormente queste tassonomie (campi personalizzati, immagini, ecc.) Per CPT diversi. Bello!
PS,

0

Basta usare questo codice per aiutarti

 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 
            )  
        );
}

Una versione spogliata della risposta già accettata. Inoltre, ciò aggiunge anche una tassonomia completamente nuova anziché utilizzare la tassonomia "post_tag" esistente.
acidrums4,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.