A taxonomia padrão de "post tags" pode ser renomeada?

16

Pretendo usar a taxonomia padrão "post tags" para fornecer um conjunto comum de tags entre postagens e 2 tipos de post personalizados (para permitir a coleta / agregação por tag).

Gostaria de renomear a taxonomia "post tags" para outra coisa - como "tags gerais" - para torná-lo um pouco mais claro, especialmente quando essa taxonomia está anexada a outros tipos de postagem personalizados.

Então, existe alguma maneira de fazer isso no Wordpress, ou faço via SQL. Além disso, alguém sabe se existe uma expectativa de que essa taxonomia exista com as "post tags" nãs

anu
fonte

Respostas:

23

As informações sobre taxonomias são armazenadas na $wp_taxonomiesmatriz global . Se você registrar uma nova taxonomia, ela será adicionada como um objeto com propriedades diferentes, incluindo os rótulos a serem usados ​​na interface do usuário. As tags e categorias padrão também são registradas lá em cada carregamento da página, com ocreate_initial_taxonomies() função que é acionada init.

Como é um conjunto simples de objetos, podemos modificá-lo e ver o que acontece. As propriedades em que estamos interessados ​​são labelse label.

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

    // The list of labels we can modify comes from
    //  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' => 'WPA 4182 Tags',
        'menu_name' => 'WPA 4182 Tags',
        'singular_name' => 'WPA 4182 Tag',
        'search_items' => 'Search WPA 4182 Tags',
        'popular_items' => 'Popular WPA 4182 Tags',
        'all_items' => 'All WPA 4182 Tags',
        'parent_item' => null, // Tags aren't hierarchical
        'parent_item_colon' => null,
        'edit_item' => 'Edit WPA 4182 Tag',
        'update_item' => 'Update WPA 4182 Tag',
        'add_new_item' => 'Add new WPA 4182 Tag',
        'new_item_name' => 'New WPA 4182 Tag Name',
        'separate_items_with_commas' => 'Separata WPA 4182 tags with commas',
        'add_or_remove_items' => 'Add or remove WPA 4182 tags',
        'choose_from_most_used' => 'Choose from the most used WPA 4182 tags',
    );

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

Eu não o verifiquei em todos os lugares, e você provavelmente precisará alterá-lo por conta própria, mas isso parece fazer o que você deseja:

Etiquetar metabox com novos rótulos

Jan Fabry
fonte
Legal - vou tentar e relatar de volta. Graças
anu
exatamente o que eu precisava. não sabia sobre os $ taxonomias mundial
helgatheviking
Um pequeno problema ao usar este código: se eu executar o WP 3.8.1 com DEBUG: true, vejo um aviso na página de edição de cada tag: "Aviso: Propriedade indefinida: stdClass :: $ view_item em / wp-includes / admin -bar.php na linha 508 ". De fato, se eu adicionar um rótulo "view_item" à lista (View WPA 4182), o aviso desaparecerá.
Manu
3

Você pode remover a taxonomia de Categorias e, em seguida, simplesmente criar sua própria.

No meu exemplo, removi a taxonomia de categorias e a substitui por uma taxonomia de assuntos

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( 'Subjects', 'Taxonomy General Name', 'dc' ),
        'singular_name'              => _x( 'Subject', 'Taxonomy Singular Name', 'dc' ),
        'menu_name'                  => __( 'Subjects', 'dc' ),
        'all_items'                  => __( 'All Items', 'dc' ),
        'parent_item'                => __( 'Parent Item', 'dc' ),
        'parent_item_colon'          => __( 'Parent Item:', 'dc' ),
        'new_item_name'              => __( 'New Subject', 'dc' ),
        'add_new_item'               => __( 'Add New Item', 'dc' ),
        'edit_item'                  => __( 'Edit Item', 'dc' ),
        'update_item'                => __( 'Update Item', 'dc' ),
        'separate_items_with_commas' => __( 'Separate items with commas', 'dc' ),
        'search_items'               => __( 'Search Items', 'dc' ),
        'add_or_remove_items'        => __( 'Add or remove items', 'dc' ),
        'choose_from_most_used'      => __( 'Choose from the most used items', 'dc' ),
        'not_found'                  => __( 'Not Found', '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 );
davidcondrey
fonte
É exatamente disso que eu preciso. Obrigado! Eu só fiz uma pequena mudança: english.stackexchange.com/questions/25931/...
tehlivi
2

Renomeie os rótulos de categoria específica:

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

    $cat = $wp_taxonomies['category'];
    $cat->label = 'My Categories';
    $cat->labels->singular_name = 'My Categorie';
    $cat->labels->name = $cat->label;
    $cat->labels->menu_name = $cat->label;
    //…
}

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

lemats
fonte
Essa é de longe a maneira mais fácil de ajustar o nome da taxonomia da categoria padrão, ótima resposta.
serraosays 27/01
0

A partir daqui

// hook the translation filters
add_filter(  'gettext',  'change_post_to_article'  );
add_filter(  'ngettext',  'change_post_to_article'  );

function change_post_to_article( $translated ) {
     $translated = str_ireplace(  'Post',  'Article',  $translated );  // ireplace is PHP5 only
     return $translated;
}
kaiser
fonte