Dapatkah taksonomi "tag tag" default diganti namanya?

16

Saya bermaksud menggunakan taksonomi "tag posting" default untuk memberikan satu set tag umum di seluruh posting dan 2 jenis posting kustom (untuk memungkinkan pengumpulan / agregasi dengan tag).

Saya ingin mengganti nama "tag pos" taksonomi menjadi sesuatu yang lain - seperti "tag umum '- untuk membuatnya sedikit lebih jelas, terutama ketika taksonomi ini dilampirkan ke jenis posting kustom lainnya.

Jadi, apakah ada cara untuk melakukan ini di dalam Wordpress, atau apakah saya melakukannya melalui SQL. Juga, ada yang tahu jika ada harapan bahwa taksonomi ini ada dengan "tag pos" nane

anu
sumber

Jawaban:

23

Informasi tentang taksonomi disimpan dalam $wp_taxonomiesarray global . Jika Anda mendaftarkan taksonomi baru, itu ditambahkan sebagai objek dengan properti berbeda, termasuk label untuk digunakan di UI. Tag dan kategori standar juga terdaftar ada pada setiap buka halaman, dengan para create_initial_taxonomies()fungsi yang kebakaran pada init.

Karena ini adalah array sederhana dari objek, kita dapat memodifikasinya dan melihat apa yang terjadi. Properti yang kami minati adalah labelsdan 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';
}

Saya belum memeriksanya di mana-mana, dan Anda mungkin harus mengubahnya sendiri di tema Anda, tetapi ini tampaknya melakukan apa yang Anda inginkan:

Beri tag metabox dengan label baru

Jan Fabry
sumber
Bagus - saya akan mencoba dan melaporkannya. Terima kasih
anu
persis apa yang saya butuhkan. tidak tahu tentang $ taksonomi global
helgatheviking
Satu masalah kecil saat menggunakan kode ini: jika saya menjalankan WP 3.8.1 dengan DEBUG: true, saya melihat pemberitahuan di halaman edit setiap tag: "Pemberitahuan: Properti tidak terdefinisi: stdClass :: $ view_item di / wp-include / admin -bar.php di baris 508 ". Memang, jika saya menambahkan label "view_item" ke daftar (Lihat WPA 4182), pemberitahuan itu hilang.
Manu
3

Anda dapat menghapus taksonomi Kategori dan kemudian membuatnya sendiri.

Dalam contoh saya, saya telah menghapus taksonomi Kategori pos dan menggantinya dengan taksonomi Subjek

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
sumber
Inilah yang saya butuhkan. Terima kasih! Saya hanya membuat satu perubahan kecil: english.stackexchange.com/questions/25931/…
tehlivi
2

Ganti nama label kategori tertentu:

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

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

lemat
sumber
Sejauh ini, ini adalah cara termudah untuk menyesuaikan nama taksonomi kategori default, jawaban yang bagus.
serraosays
0

Dari sini

// 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;
}
kaisar
sumber