È possibile rinominare la tassonomia predefinita "tag articolo"?
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"?

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:

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

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.

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

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

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

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