taxonomy เริ่มต้นของแท็กโพสต์สามารถเปลี่ยนชื่อได้หรือไม่


16

ฉันตั้งใจจะใช้อนุกรมวิธาน "แท็กโพสต์" เริ่มต้นเพื่อจัดทำชุดแท็กทั่วไปในโพสต์และประเภทโพสต์ที่กำหนดเอง 2 ประเภท (เพื่ออนุญาตให้มีการรวบรวม / รวมแท็ก)

ฉันต้องการเปลี่ยนชื่ออนุกรมวิธาน "แท็กโพสต์" เป็นอย่างอื่น - เช่น "แท็กทั่วไป" - เพื่อให้ชัดเจนขึ้นโดยเฉพาะเมื่ออนุกรมวิธานนี้แนบกับประเภทโพสต์ที่กำหนดเองอื่น ๆ

ดังนั้นมีวิธีการทำเช่นนี้ภายใน Wordpress หรือฉันจะทำผ่าน SQL นอกจากนี้ทุกคนทราบว่ามีความคาดหวังว่าอนุกรมวิธานนี้จะมีอยู่ใน "โพสต์แท็ก" ที่ว่างเปล่า

คำตอบ:


23

ข้อมูลเกี่ยวกับ taxonomies ถูกเก็บไว้ใน$wp_taxonomiesอาร์เรย์ทั่วโลก หากคุณลงทะเบียน taxonomy ใหม่มันจะถูกเพิ่มเป็นวัตถุที่มีคุณสมบัติแตกต่างกันรวมถึงป้ายกำกับที่จะใช้ใน UI แท็กมาตรฐานและหมวดหมู่นอกจากนี้ยังมีการลงทะเบียนมีในการโหลดหน้าแต่ละคนพร้อมกับฟังก์ชั่นที่เกิดเพลิงไหม้บนcreate_initial_taxonomies()init

เนื่องจากมันเป็นอาร์เรย์ของวัตถุที่เรียบง่ายเราจึงสามารถแก้ไขและดูว่าเกิดอะไรขึ้น คุณสมบัติที่เรามีความสนใจในมีและ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';
}

ฉันไม่ได้ตรวจสอบทุกที่และคุณอาจต้องเปลี่ยนในชุดรูปแบบของคุณเอง แต่ดูเหมือนว่าจะทำสิ่งที่คุณต้องการ:

ติดแท็ก metabox ด้วยป้ายกำกับใหม่


เป็นคนดี - ฉันจะให้เรื่องนี้และรายงานกลับ ขอบคุณ
anu

สิ่งที่ฉันต้องการ ไม่ทราบเกี่ยวกับ $ taxonomies ทั่วโลก
helgatheviking

ปัญหาเล็กน้อยหนึ่งข้อเมื่อใช้รหัสนี้: ถ้าฉันเรียกใช้ WP 3.8.1 ด้วย DEBUG: จริงฉันเห็นประกาศบนหน้าแก้ไขของแต่ละแท็ก: "ประกาศ: คุณสมบัติที่ไม่ได้กำหนด: stdClass :: $ view_item ใน / wp-include / admin -bar.php ในบรรทัด 508 " แน่นอนถ้าฉันเพิ่มป้ายกำกับ "view_item" ลงในรายการ (ดู WPA 4182) การแจ้งเตือนจะหายไป
มนู

3

คุณสามารถลบหมวดหมู่ taxonomy จากนั้นเพียงสร้างของคุณเอง

ในตัวอย่างของฉันฉันได้ลบโพสต์หมวดหมู่ taxonomy และแทนที่ด้วย taxonomy หัวเรื่อง

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

นี่คือสิ่งที่ฉันต้องการ ขอบคุณ! ฉันทำเพียงหนึ่งเปลี่ยนแปลงขนาดเล็ก: english.stackexchange.com/questions/25931/...
tehlivi

2

เปลี่ยนชื่อป้ายกำกับหมวดหมู่เฉพาะ:

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

ป้ายกำกับ: http://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments


นี่เป็นวิธีที่ง่ายที่สุดในการปรับชื่อหมวดหมู่อนุกรมวิธานเริ่มต้นซึ่งเป็นคำตอบที่ดี
serraosays

0

จากที่นี่

// 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;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.