Các thẻ bài đăng mặc định của Wikipedia có thể được đổi tên thành phân loại không?


16

Tôi dự định sử dụng phân loại "thẻ bài" mặc định để cung cấp một bộ thẻ chung trên các bài đăng và 2 loại bài đăng tùy chỉnh (để cho phép thu thập / tổng hợp theo thẻ).

Tôi muốn đổi tên phân loại "thẻ bài" thành một thứ khác - như "thẻ chung" - để làm cho nó rõ ràng hơn một chút, đặc biệt là khi phân loại này được gắn với các loại bài tùy chỉnh khác.

Vì vậy, có cách nào để làm điều này trong Wordpress hay tôi thực hiện nó thông qua SQL. Ngoài ra, bất cứ ai cũng biết nếu có một kỳ vọng rằng phân loại này tồn tại với "thẻ bài" vô nghĩa

Câu trả lời:


23

Thông tin về các nguyên tắc phân loại được lưu trữ trong $wp_taxonomiesmảng toàn cầu . Nếu bạn đăng ký một phân loại mới, nó sẽ được thêm dưới dạng một đối tượng với các thuộc tính khác nhau, bao gồm các nhãn để sử dụng trong UI. Các thẻ tiêu chuẩn và loại cũng đã được đăng ký có trên mỗi tải trang, với các create_initial_taxonomies()chức năng mà cháy trên init.

Vì nó là một mảng đơn giản của các đối tượng, chúng ta có thể sửa đổi nó và xem điều gì sẽ xảy ra. Các tính chất chúng tôi quan tâm là labelslabel.

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

Tôi đã không kiểm tra nó ở mọi nơi và có thể bạn sẽ phải tự thay đổi nó trong chủ đề của mình, nhưng điều này dường như làm những gì bạn muốn:

Tag metabox với nhãn mới


Một trong những tốt đẹp - tôi sẽ cho đi và báo cáo lại. Cảm ơn
anu

chính xác những gì tôi cần. không biết về các nguyên tắc phân loại $ toàn cầu
helgatheviking

Một vấn đề nhỏ khi sử dụng mã này: nếu tôi chạy WP 3.8.1 với DEBUG: đúng, tôi thấy một thông báo trên trang chỉnh sửa của mỗi thẻ: "Lưu ý: Thuộc tính không xác định: stdClass :: $ view_item in / wp-gộp / admin -bar.php trên dòng 508 ". Thật vậy, nếu tôi thêm nhãn "view_item" vào danh sách (Xem WPA 4182), thông báo sẽ biến mất.
Manu

3

Bạn có thể loại bỏ phân loại Danh mục và sau đó chỉ cần tạo riêng của bạn.

Trong ví dụ của tôi, tôi đã xóa phân loại bài đăng và thay thế nó bằng phân loại Chủ đề

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

Đây chính xác là những gì tôi cần. Cảm ơn! Tôi chỉ thực hiện một thay đổi nhỏ: english.stackexchange.com/questions/25931/
Khăn

2

Đổi tên nhãn danh mục cụ thể:

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

Nhãn: http://codex.wordpress.org/Function_Reference/register_taxonomy#Argument


Đây là cách dễ nhất để điều chỉnh tên của phân loại mặc định, câu trả lời tuyệt vời.
huyết thanh

0

Từ đây

// 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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.