วิธีเพิ่มแท็กให้กับประเภทโพสต์ที่กำหนดเอง


28

ฉันมีประเภทโพสต์ที่กำหนดเองที่เรียกว่าportfolioและฉันพยายามที่จะเพิ่มแท็ก taxonomy ลงไปฉันจะทำอย่างไร


@chifliiiii ถ้าฉันทำเช่นนั้นหมวดหมู่และแท็กจะเหมือนกับที่ใช้กับโพสต์ ฉันจะรับหมวดหมู่และแท็กที่ไม่รวมอยู่ในประเภทโพสต์ใหม่ได้อย่างไร
ทรอย Templeman

@chifliiiii แสดงแท็กในเทมเพลตหรือไม่
Max

คำตอบ:


15

เช่นนี้: (ที่มันบอกว่า "ผลงาน" เป็นที่ที่คุณลงทะเบียน taxonomy เป็นประเภทโพสต์

add_action( 'init', 'create_tag_taxonomies', 0 );

//create two taxonomies, genres and tags for the post type "tag"
function create_tag_taxonomies() 
{
  // Add new taxonomy, NOT hierarchical (like tags)
  $labels = array(
    'name' => _x( 'Tags', 'taxonomy general name' ),
    'singular_name' => _x( 'Tag', 'taxonomy singular name' ),
    'search_items' =>  __( 'Search Tags' ),
    'popular_items' => __( 'Popular Tags' ),
    'all_items' => __( 'All Tags' ),
    'parent_item' => null,
    'parent_item_colon' => null,
    'edit_item' => __( 'Edit Tag' ), 
    'update_item' => __( 'Update Tag' ),
    'add_new_item' => __( 'Add New Tag' ),
    'new_item_name' => __( 'New Tag Name' ),
    'separate_items_with_commas' => __( 'Separate tags with commas' ),
    'add_or_remove_items' => __( 'Add or remove tags' ),
    'choose_from_most_used' => __( 'Choose from the most used tags' ),
    'menu_name' => __( 'Tags' ),
  ); 

  register_taxonomy('tag','portfolio',array(
    'hierarchical' => false,
    'labels' => $labels,
    'show_ui' => true,
    'update_count_callback' => '_update_post_term_count',
    'query_var' => true,
    'rewrite' => array( 'slug' => 'tag' ),
  ));
}
?>

@ JoeBobby มันคงคุ้มค่าที่จะตรวจสอบหน้า WordPress Codex สำหรับการลงทะเบียน taxonomies เพื่อให้ได้ความรู้สึกที่ดีขึ้นสำหรับตัวเลือกที่มีทั้งหมด: codex.wordpress.org/Function_Reference/register_taxonomy
Stephen S.

8
เพียงทราบว่านี่เป็นการสร้าง taxonomy ใหม่ทั้งหมดที่เรียกว่า 'แท็ก' แทนที่จะเพิ่ม taxonomy 'post_tag' ที่มีอยู่ให้กับประเภทโพสต์ที่กำหนดเอง
Jake

@chifliiiii วิธีรับแท็กเหล่านี้ในโพสต์หน้าเดียวพร้อมลิงก์แท็กวิธีสร้างเทมเพลตสำหรับหน้าแท็ก
Dinesh

1
ฉันเห็นด้วยกับ Jake ฉันรู้สึกว่าสิ่งนี้ไม่สามารถแก้ปัญหาได้ คำตอบ @Marcus ควรเป็นคำตอบที่ได้รับการยอมรับ
Craig Wayne

58

หรือเพียงเพิ่ม:

'taxonomies' => array('post_tag')

อาร์เรย์ของ taxonomies ที่ลงทะเบียนเช่นcategoryหรือpost_tagที่จะใช้กับโพสต์ประเภทนี้ สามารถใช้แทนการโทรregister_taxonomy_for_object_type()โดยตรง taxonomies register_taxonomy()กำหนดเองยังคงต้องลงทะเบียนกับ

กับ$argsอาร์เรย์ในfunctions.phpแฟ้ม: register_post_type()ที่คุณสร้างประเภทโพสต์ที่กำหนดเองด้วย


2
โปรดเพิ่มคำอธิบายลงในคำตอบของคุณ: ทำไมจึงแก้ปัญหาได้
fuxia


0

เพียงใช้รหัสนี้อาจช่วยคุณได้

 add_action( 'init', 'create_client_tax' );
function create_client_tax() {
    register_taxonomy( 
            'client_tag', //your tags taxonomy
            'client',  // Your post type
            array( 
                'hierarchical'  => false, 
                'label'         => __( 'Tags', CURRENT_THEME ), 
                'singular_name' => __( 'Tag', CURRENT_THEME ), 
                'rewrite'       => true, 
                'query_var'     => true 
            )  
        );
}

คำตอบที่ยอมรับแล้วรุ่นที่ปล้นแล้ว นอกจากนี้ยังเป็นการเพิ่มอนุกรมวิธานใหม่ทั้งหมดแทนที่จะใช้อนุกรมวิธาน 'post_tag' ที่มีอยู่
acidrums4

0

วิธีที่ 1 (จากคำตอบด้านบน: https://wordpress.stackexchange.com/a/106211/38771 )

ประเภทโพสต์ที่ต่างกันจะใช้ข้อมูล "แท็ก" ที่เหมือนกันของประเภท "โพสต์" เริ่มต้น

  • ประโยชน์ที่ได้รับ

    • ทุกอย่าง (ควร) ทำงานนอกกรอบด้วยหนึ่งบรรทัด

    • แท็กทั้งหมดของคุณในที่เดียวใน CMS

  • ข้อเสีย

    • ลืมเกี่ยวกับ CMS ที่มีโครงสร้าง / ใช้งานง่าย - รายการแท็กในหน้าประเภทโพสต์ที่กำหนดเองจะแสดงแท็กทั้งหมด (ไม่ใช่แค่แท็กที่ใช้ในบทความประเภทโพสต์ที่กำหนดเอง) ด้วยจำนวนที่ไม่ถูกต้อง ...
    • การเปลี่ยนแปลงแท็กจะส่งผลต่อบทความ "โพสต์" เริ่มต้นเช่นเดียวกับบทความประเภทโพสต์ที่กำหนดเอง (ลบแท็กลบออกในบทความทั้งสองประเภท)
    • ยากขึ้น (อาจเป็นไปไม่ได้) ในการตั้งค่าฟังก์ชั่นแท็กที่แตกต่างกัน: คำอธิบายที่แตกต่างกัน, ฟิลด์ที่กำหนดเอง, รูปภาพ, ฯลฯ (อย่างน้อยก็ไม่ต้องไม่มีการเข้ารหัสที่กำหนดเองมาก ๆ

วิธีที่ 2 (จากคำตอบด้านบน: https://wordpress.stackexchange.com/a/62263/38771 )

โพสต์ประเภทต่างๆใช้การกำหนดค่า / ข้อมูล "แท็ก" ที่แตกต่างกัน

  • ประโยชน์ที่ได้รับ

    • สร้างฟังก์ชั่นที่เกี่ยวข้องกับแท็กที่แตกต่าง / ชัดเจน : เทมเพลตส่วนหน้า, ความสามารถ, ตัวกรองคิวรี, การกระทำ)
    • กำหนดข้อมูลที่เกี่ยวข้องกับแท็ก : ข้อมูลฟิลด์หรือฟิลด์ที่กำหนดเอง
    • จัดการแท็กได้ดีขึ้นใน CMS
      • ตัวอย่าง : การแก้ไข / ลบแท็ก "โพสต์" จะไม่ส่งผลต่อแท็ก (ชื่อคล้ายกัน / slugged) สำหรับประเภทโพสต์อื่น ๆ
  • ถ่วงดุลอำนาจ

    อีกเล็กน้อยรหัสการติดตั้ง

อันที่จริงพวกเขาเป็นวิธีที่ทรงพลังอย่างยิ่งในการจัดกลุ่มรายการต่าง ๆ ในทุกรูปแบบ https://codex.wordpress.org/Taxonomies#Custom_Taxonomies


นี่คือตัวอย่างของวิธีที่ 1: เว็บไซต์กีฬาขนาดใหญ่ครอบคลุมหัวข้อ / ลีค / กีฬามากมายที่มีแท็กเช่น "NBA", "NHL", "บาสเกตบอล", "โอลิมปิก", "โอลิมปิก", "เตียรอยด์", "วิทยาลัย" ฯลฯ ไม่ควรทำซ้ำและจัดการสิ่งที่อาจเป็นแท็ก +100 และ 4 ประเภทโพสต์ (ประเภทโพสต์เริ่มต้นและ 3 ประเภทโพสต์ที่กำหนดเอง) สำหรับข้อเสียหากข้อมูลนับแท็กมีความพิเศษดังนั้นมุมมองที่กำหนดเองสามารถทำได้ สำหรับแท็กที่กำหนดเองที่คล้ายกันต่อประเภทโพสต์ดูเหมือนว่ายังไม่มีความต้องการที่ชัดเจนในขณะนี้ (พยายามอย่างหนักที่จะคิดว่า ... ต้องการตัวอย่าง)
MarsAndBack

ใช่ แต่จะไม่มีแท็กลิงก์ที่แตกต่างกันโดยอัตโนมัติสำหรับโพสต์ประเภทต่างๆ แท็ก "playoffs" จะมี "/ tag / playoffs" สำหรับโพสต์ทุกประเภท จากนั้นคุณต้องตั้งค่ากฎการเขียนซ้ำหรือใช้ GET params เพื่อสร้าง Permalinks ที่แตกต่างกัน ... ด้วย taxonomy ที่แตกต่างกันสำหรับโพสต์ทุกประเภทแท็ก "playoffs" ทุกประเภทโพสต์ทุกประเภทจะมี Permalink ของตัวเอง ลำดับชั้น มันดีถ้าหน้า "รอบตัดเชือก" แตกต่างกันสำหรับ NBA, NHL ... ฉันทำงานในไซต์ที่มีระดับการปรับแต่งสำหรับ taxonomies (ฟิลด์ที่กำหนดเอง, รูปภาพ taxonomy, คำอธิบาย)
PS

1
ฉันเห็นสิ่งที่คุณพูด ดังนั้นหากไปกับ taxonomies ของแท็กที่แตกต่างกันต่อ CPT วิธีการทำให้เป็นเช่นนั้นเมื่อคุณเพิ่ม / แก้ไขคำหนึ่งในภาษีหนึ่งมันจะได้รับการเปลี่ยนแปลงในภาษีอื่น ๆ นั่นคือซิงโครไนซ์คำที่ไม่ซ้ำกันทั่วทั้งภาษี เช่นกำหนด "บาสเก็ต" หนึ่งครั้งสมมติว่าในโพสต์ภาษีแท็กจากนั้นเมื่อคุณกดบันทึกแล้ว "บาสเก็ต" ก็จะถูกสร้างขึ้นโดยเฉพาะสำหรับภาษีของ CPT ดังนั้นอินพุต / แก้ไขแท็กหนึ่งครั้งและการเปลี่ยนแปลงจะถูกแสดงในภาษีแท็กหลายรายการ ในที่สุดคุณจะได้รับการจัดการแท็กในหนึ่งปลายทางรวมถึงสถานการณ์ความคิดเห็นที่ต้องการเพิ่มเติม
MarsAndBack

ใช่ว่าจะเป็นวิธีการที่ยอดเยี่ยมหากเว็บไซต์แบ่งปันข้อมูล taxonomies พื้นฐานเดียวกัน (ชื่อ) สำหรับหลาย CPT รวมทั้งให้ตัวเลือกในการปรับแต่ง taxonomies เหล่านี้เพิ่มเติม (ฟิลด์กำหนดเอง, รูปภาพ, ฯลฯ ) สำหรับ CPT ที่แตกต่างกัน ดี!
PS
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.