È possibile rinominare la tassonomia predefinita "tag articolo"?

17 nov 2010, 12:48:05
Visualizzazioni: 17.7K
Voti: 17

Intendo utilizzare la tassonomia predefinita "tag articolo" per fornire un insieme comune di tag tra articoli e 2 tipi di post personalizzati (per consentire la raccolta/aggregazione per tag).

Vorrei rinominare la tassonomia "tag articolo" in qualcos'altro - come "tag generali" - per renderla più chiara, specialmente quando questa tassonomia è associata ad altri tipi di post personalizzati.

Quindi, c'è un modo per farlo all'interno di WordPress, o devo farlo via SQL? Inoltre, qualcuno sa se c'è l'aspettativa che questa tassonomia esista con il nome "tag articolo"?

0
Tutte le risposte alla domanda 4
3
24

Le informazioni sulle tassonomie sono memorizzate nell'array globale $wp_taxonomies. Se registri una nuova tassonomia, viene aggiunta come un oggetto con diverse proprietà, inclusi le etichette da utilizzare nell'interfaccia utente. Anche i tag e le categorie standard sono registrati lì ad ogni caricamento di pagina, con la funzione create_initial_taxonomies() che viene eseguita su init.

Poiché si tratta di un semplice array di oggetti, possiamo modificarlo e vedere cosa succede. Le proprietà che ci interessano sono labels e label.

add_action( 'init', 'wpa4182_init');
function wpa4182_init()
{
    global $wp_taxonomies;

    // L'elenco delle etichette che possiamo modificare proviene da
    //  http://codex.wordpress.org/Function_Reference/register_taxonomy
    //  http://core.trac.wordpress.org/browser/branches/3.0/wp-includes/taxonomy.php#L350
    $wp_taxonomies['post_tag']->labels = (object)array(
        'name' => 'Tag WPA 4182',
        'menu_name' => 'Tag WPA 4182',
        'singular_name' => 'Tag WPA 4182',
        'search_items' => 'Cerca Tag WPA 4182',
        'popular_items' => 'Tag WPA 4182 più popolari',
        'all_items' => 'Tutti i Tag WPA 4182',
        'parent_item' => null, // I tag non sono gerarchici
        'parent_item_colon' => null,
        'edit_item' => 'Modifica Tag WPA 4182',
        'update_item' => 'Aggiorna Tag WPA 4182',
        'add_new_item' => 'Aggiungi nuovo Tag WPA 4182',
        'new_item_name' => 'Nome nuovo Tag WPA 4182',
        'separate_items_with_commas' => 'Separa i Tag WPA 4182 con le virgole',
        'add_or_remove_items' => 'Aggiungi o rimuovi Tag WPA 4182',
        'choose_from_most_used' => 'Scegli tra i Tag WPA 4182 più utilizzati',
    );

    $wp_taxonomies['post_tag']->label = 'Tag WPA 4182';
}

Non ho verificato ovunque, e probabilmente dovrai modificarlo anche nel tuo tema, ma sembra fare quello che desideri:

Metabox dei tag con nuove etichette

17 nov 2010 13:33:04
Commenti

Ottimo - proverò e farò sapere. Grazie

anu anu
17 nov 2010 14:13:37

esattamente quello che mi serviva. non conoscevo la variabile globale $taxonomies

helgatheviking helgatheviking
7 nov 2011 23:50:07

Un piccolo problema quando si usa questo codice: se uso WP 3.8.1 con DEBUG:true, vedo un notice nella pagina di modifica di ogni tag: "Notice: Undefined property: stdClass::$view_item in /wp-includes/admin-bar.php on line 508". Infatti, se aggiungo un'etichetta "view_item" alla lista (View WPA 4182), il notice scompare.

Manu Manu
26 feb 2014 14:08:34
1

Rinomina le etichette specifiche delle categorie:

add_action('init', 'renameCategory');
function renameCategory() {
    global $wp_taxonomies;

    $cat = $wp_taxonomies['category'];
    $cat->label = 'Le Mie Categorie';
    $cat->labels->singular_name = 'La Mia Categoria';
    $cat->labels->name = $cat->label;
    $cat->labels->menu_name = $cat->label;
    //…
}

Etichette: http://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments

15 mar 2012 15:29:48
Commenti

Questo è di gran lunga il modo più semplice per modificare il nome della tassonomia predefinita delle categorie, ottima risposta.

serraosays serraosays
27 gen 2017 18:05:18
1

Potresti rimuovere la tassonomia delle Categorie e poi semplicemente crearne una tua personalizzata.

Nel mio esempio ho rimosso la tassonomia delle Categorie per gli articoli e l'ho sostituita con una tassonomia chiamata Materie

add_action( 'init', 'unregister_taxonomy' );
function unregister_taxonomy() {
    global $wp_taxonomies;
    $taxonomy = 'category';
    if ( taxonomy_exists($taxonomy) ){
        unset( $wp_taxonomies[$taxonomy] );
    }
}

function article_subjects() {
    $labels = array(
        'name'                       => _x( 'Materie', 'Nome Generale della Tassonomia', 'dc' ),
        'singular_name'              => _x( 'Materia', 'Nome Singolare della Tassonomia', 'dc' ),
        'menu_name'                  => __( 'Materie', 'dc' ),
        'all_items'                  => __( 'Tutti gli elementi', 'dc' ),
        'parent_item'                => __( 'Elemento genitore', 'dc' ),
        'parent_item_colon'          => __( 'Elemento genitore:', 'dc' ),
        'new_item_name'              => __( 'Nuova Materia', 'dc' ),
        'add_new_item'               => __( 'Aggiungi nuovo elemento', 'dc' ),
        'edit_item'                  => __( 'Modifica elemento', 'dc' ),
        'update_item'                => __( 'Aggiorna elemento', 'dc' ),
        'separate_items_with_commas' => __( 'Separa gli elementi con virgole', 'dc' ),
        'search_items'               => __( 'Cerca elementi', 'dc' ),
        'add_or_remove_items'        => __( 'Aggiungi o rimuovi elementi', 'dc' ),
        'choose_from_most_used'      => __( 'Scegli tra i più utilizzati', 'dc' ),
        'not_found'                  => __( 'Non trovato', 'dc' ),
    );
    $args = array(
        'labels'                     => $labels,
        'hierarchical'               => false,
        'public'                     => true,
        'show_ui'                    => true,
        'show_admin_column'          => true,
        'show_in_nav_menus'          => true,
        'show_tagcloud'              => true,
    );
    register_taxonomy( 'article_subjects', array( 'post' ), $args );
}
add_action( 'init', 'article_subjects', 0 );
19 giu 2014 07:49:15
Commenti

È esattamente ciò di cui ho bisogno. Grazie! Ho fatto solo una piccola modifica: https://english.stackexchange.com/questions/25931/unregister-vs-deregister?newreg=1beb484b28ae485880486c283d51a1eb

tehlivi tehlivi
18 apr 2017 01:35:33
0

Da qui

// aggancia i filtri di traduzione
add_filter(  'gettext',  'change_post_to_article'  );
add_filter(  'ngettext',  'change_post_to_article'  );

function change_post_to_article( $translated ) {
     $translated = str_ireplace(  'Post',  'Articolo',  $translated );  // ireplace è disponibile solo da PHP5
     return $translated;
}
12 mag 2011 01:28:00