web-dev-qa-db-fra.com

La taxonomie par défaut "post tags" peut-elle être renommée?

J'ai l'intention d'utiliser la taxonomie par défaut des "étiquettes de publication" pour fournir un ensemble commun d'étiquettes entre les publications et 2 types de publication personnalisés (pour permettre la collecte/l'agrégation par étiquette).

J'aimerais renommer la taxonomie des "étiquettes de publication" en quelque chose d'autre, comme des "étiquettes générales", pour la rendre un peu plus claire, en particulier lorsque cette taxonomie est associée à d'autres types de publication personnalisés.

Donc, y a-t-il un moyen de faire cela dans Wordpress, ou est-ce que je le fais via SQL. En outre, tout le monde sait s’il est prévu que cette taxonomie existe avec le nane "post tags"

15
anu

Les informations sur les taxonomies sont stockées dans le tableau global $wp_taxonomies. Si vous enregistrez une nouvelle taxonomie, elle est ajoutée en tant qu'objet avec différentes propriétés, y compris les étiquettes à utiliser dans l'interface utilisateur. Les balises et les catégories standard sont également enregistrées à chaque chargement de page, avec la fonction create_initial_taxonomies() qui se déclenche à init.

Puisqu'il s'agit d'un simple tableau d'objets, nous pouvons le modifier et voir ce qui se passe. Les propriétés qui nous intéressent sont labels et 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';
}

Je n'ai pas vérifié partout, et vous devrez probablement le changer vous-même dans votre thème, mais cela semble faire ce que vous voulez:

Tag metabox with new labels

21
Jan Fabry

Vous pouvez supprimer la taxonomie des catégories et créer simplement la vôtre.

Dans mon exemple, j'ai supprimé l'article taxonomie Catégories et l'a remplacé par une taxonomie Subjects.

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

Renommez les étiquettes de catégories spécifiques:

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

Étiquettes: http://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments

1
lemats

De ici

// 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;
}
0
kaiser