Bagaimana cara Menambahkan Tag ke Jenis Posting Kustom?

28

Saya memiliki jenis pos kustom yang dipanggil portfoliodan saya mencoba menambahkan tag taksonomi ke sana, bagaimana saya melakukan ini?

Joe Bobby
sumber
@chifliiiii jika saya melakukan itu, Kategori dan Tag sama dengan yang digunakan untuk Posting. Bagaimana saya mendapatkan Kategori dan Tag yang eksklusif untuk jenis posting baru?
Troy Templeman
@chifliiiii Seperti menampilkan tag di templat?
Maks

Jawaban:

15

Seperti ini: (Di mana dikatakan "portofolio" adalah tempat Anda mendaftarkan taksonomi ke jenis pos

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' ),
  ));
}
?>
chifliiiii
sumber
@JoeBobby mungkin ada baiknya memeriksa halaman WordPress Codex untuk mendaftarkan taksonomi untuk mendapatkan perasaan yang lebih baik untuk semua opsi yang tersedia: codex.wordpress.org/Function_Reference/register_taxonomy
Stephen S.
8
Hanya sebuah catatan bahwa ini menciptakan taksonomi baru yang disebut 'tag' alih-alih menambahkan taksonomi 'post_tag' yang ada ke jenis pos kustom.
Jake
@chifliiiii cara mendapatkan tag ini di halaman posting tunggal dengan tag tautan, cara membuat template untuk halaman tag
Dinesh
1
Saya setuju dengan Jake, saya merasa ini tidak menyelesaikan masalah. Jawaban @Marcus haruslah yang ditandai sebagai diterima.
Craig Wayne
58

Atau cukup tambahkan:

'taxonomies' => array('post_tag')

Array taksonomi terdaftar seperti categoryatau post_tagyang akan digunakan dengan jenis posting ini. Ini dapat digunakan sebagai pengganti panggilan register_taxonomy_for_object_type()langsung. Taksonomi khusus masih harus didaftarkan register_taxonomy().

ke $argsarray di functions.php-file tempat Anda membuat tipe posting kustom register_post_type().

Marcus
sumber
2
Harap tambahkan penjelasan pada jawaban Anda: mengapa itu bisa menyelesaikan masalah?
fuxia
5

Gunakan ini:

add_action( 'init', 'gp_register_taxonomy_for_object_type' );
function gp_register_taxonomy_for_object_type() {
    register_taxonomy_for_object_type( 'post_tag', 'portfolio' );
};
Giovanni Putignano
sumber
1

Metode 1 (dari jawaban di atas: https://wordpress.stackexchange.com/a/106211/38771 )

Jenis posting yang berbeda akan menggunakan data "Tag" yang sama dengan tipe "pos" default.

  • Manfaat

    • Semuanya (harus) bekerja di luar kotak dengan satu baris

    • Semua tag Anda di satu tempat di CMS

  • Kerugian

    • Lupakan tentang CMS yang terstruktur dengan baik / mudah digunakan - daftar Tag pada halaman jenis posting kustom akan menampilkan semua Tag (bukan hanya tag yang digunakan dalam artikel jenis posting kustom) dengan penghitungan yang salah ...
    • Perubahan pada Tag akan memengaruhi artikel "pos" default serta artikel jenis pos khusus (Hapus Tag menghapusnya di kedua jenis artikel)
    • Lebih sulit (mungkin tidak mungkin) untuk mengatur fungsionalitas Tag yang berbeda: deskripsi berbeda, bidang khusus, gambar, dll (setidaknya tidak tanpa banyak pengkodean kustom di atas kode inti Wordpress) ...

Metode 2 (dari jawaban di atas: https://wordpress.stackexchange.com/a/62263/38771 )

Jenis posting yang berbeda menggunakan konfigurasi / data "Tag" yang berbeda.

  • Manfaat

    • Buat fungsionalitas terkait-tag yang berbeda / jelas berbeda : templat frontend, kemampuan, filter kueri, tindakan)
    • Tetapkan data terkait tag yang berbeda : bidang data atau bahkan bidang khusus
    • Kelola Tag dengan lebih baik di CMS
      • Contoh : Mengedit / menghapus tag "posting" tidak akan mempengaruhi tag (dengan nama yang sama / miring) untuk jenis posting lainnya
  • Pengorbanan

    Kode sedikit lebih banyak untuk setup

Sebenarnya, mereka adalah cara yang sangat kuat untuk mengelompokkan berbagai item dengan berbagai cara. https://codex.wordpress.org/Taxonomies#Custom_Taxonomies

PS
sumber
Inilah kasus untuk Metode 1: Situs web olahraga besar, yang mencakup berbagai topik / liga / olahraga dengan tag misalnya "NBA", "NHL", "Bola Basket", "Olimpiade", "Steroid", "Perguruan Tinggi", dll. t masuk akal untuk menggandakan, dan mengelola, apa yang bisa menjadi +100 tag dan 4 jenis posting (jenis posting default dan 3 jenis posting khusus). Adapun kerugiannya, jika data jumlah tag sangat istimewa, maka tampilan khusus dapat dibuat untuk itu. Adapun tag khusus serupa per jenis posting, tampaknya belum ada kebutuhan yang jelas (berusaha keras untuk memikirkan satu ... perlu contoh).
MarsAndBack
Ya tetapi tidak akan ada permalink tag yang berbeda secara otomatis untuk tipe posting yang berbeda. Tag "playoff" akan memiliki "/ tag / playoff" untuk semua jenis posting. Maka Anda harus menyiapkan aturan penulisan ulang atau menggunakan paritt GET untuk membuat permalink yang berbeda ... Dengan taksonomi yang berbeda untuk setiap jenis posting, setiap tag "playoff" untuk setiap jenis posting akan memiliki permalink sendiri, yang dapat dikustomisasi menggunakan Templat Wordpress ' Hirarki. Itu bagus jika halaman "playoff" yang berbeda berbeda untuk NBA, NHL ... Saya bekerja di situs dengan tingkat penyesuaian untuk taksonomi (bidang khusus, gambar taksonomi, deskripsi)
PS
1
Saya mengerti apa yang Anda katakan. Jadi, jika menggunakan taksonomi tag yang berbeda per CPT, bagaimana dengan membuatnya jadi ketika Anda menambahkan / mengedit istilah dalam satu pajak, ia akan berubah dalam pajak lain yaitu istilah unik yang disinkronkan lintas pajak. mis. tentukan "Bola Basket" sekali, katakanlah dalam pajak Tag pos, lalu setelah Anda menekan simpan, maka "Bola Basket" juga dibuat secara unik di seluruh pajak lain untuk CPT. Jadi, masukan / edit tag satu kali, dan perubahannya tercermin di beberapa pajak tag. Pada akhirnya Anda mendapatkan manajemen tag di satu tujuan, ditambah situasi permalink yang lebih diinginkan.
MarsAndBack
Ya itu sebenarnya akan menjadi metode yang hebat jika situs berbagi informasi taksonomi dasar yang sama (judul) untuk beberapa CPT, serta memberikan opsi untuk lebih lanjut menyesuaikan taksonomi ini (bidang khusus, gambar, dll) untuk CPT yang berbeda. Bagus!
PS
0

Cukup gunakan kode ini semoga membantu Anda

 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 
            )  
        );
}
pengguna25225
sumber
Versi singkat dari jawaban yang diterima sudah diterima. Juga, ini juga menambahkan taksonomi yang sama sekali baru daripada menggunakan taksonomi 'post_tag' yang ada.
acidrums4