¿Se puede cambiar el nombre de la taxonomía predeterminada de "etiquetas de entrada"?

14

Tengo la intención de usar la taxonomía predeterminada "publicar etiquetas" para proporcionar un conjunto común de etiquetas en todas las publicaciones y 2 tipos de publicaciones personalizadas (para permitir la recopilación / agregación por etiqueta).

Me gustaría cambiar el nombre de la taxonomía de "etiquetas de publicación" a otra cosa, como "etiquetas generales", para que sea un poco más claro, especialmente cuando esta taxonomía está asociada a otros tipos de publicaciones personalizadas.

Entonces, ¿hay alguna forma de hacer esto dentro de Wordpress, o lo hago a través de SQL? Además, cualquiera puede saber si existe la expectativa de que esta taxonomía existe con las "etiquetas de publicación" de nane

    
pregunta anu 17.11.2010 - 11:48

4 respuestas

21

La información sobre taxonomías se almacena en la matriz global $wp_taxonomies . Si registra una nueva taxonomía, se agrega como un objeto con diferentes propiedades, incluidas las etiquetas para usar en la interfaz de usuario. Las etiquetas y categorías estándar también se registran allí en cada carga de página, con the Función create_initial_taxonomies() que se activa en init .

Ya que es una simple matriz de objetos, podemos modificarlo y ver qué sucede. Las propiedades que nos interesan son labels y 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';
}

No lo he comprobado en todas partes y es probable que tengas que cambiarlo en tu tema, pero esto parece hacer lo que quieres:

    
respondido por el Jan Fabry 17.11.2010 - 12:33
1

Renombrar etiquetas de categorías específicas:

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

Etiquetas: enlace

    
respondido por el lemats 15.03.2012 - 14:29
1

Podrías eliminar la taxonomía de Categorías y luego simplemente crear la tuya propia.

En mi ejemplo, eliminé la taxonomía de categorías de publicaciones y la reemplacé con una taxonomía de Temas

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 );
    
respondido por el davidcondrey 19.06.2014 - 06:49
0

De aquí

// 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;
}
    
respondido por el kaiser 12.05.2011 - 00:28

Lea otras preguntas en las etiquetas