Bisakah beberapa jenis pos kustom membagikan taksonomi khusus?

23

Saya sedang mempertimbangkan untuk membangun kembali situs drupal di wordpress dan masih membungkus kepala saya di sekitar perbedaan antara sistem - terutama cck / bidang dan jenis konten khusus dan berbagai cara untuk menggunakan taksonomi.

Saya ingin tahu apakah dua tipe konten khusus dapat membagikan satu taksonomi khusus. Dalam drupal saya dapat membatasi posting dari jenis konten tertentu untuk sekelompok pengguna dan kemudian posting itu dapat memiliki taksonomi yang hanya dibagi dengan satu atau lebih jenis konten lainnya (tetapi tidak semua jenis).

Meninggalkan aspek pengguna yang tampak mungkin dengan scoper peran, dapatkah Anda melakukan ini dengan wordpress? Saya hanya melihat jenis konten khusus dengan taksonomi khusus tetapi tidak ada cara untuk membagikan taksonomi tertentu antara 2 atau lebih jenis konten khusus tanpa membuatnya kembali di dua tempat atau mengaktifkannya secara global melalui kategori / tag ...

Terima kasih, -Chad.

Chad Dupuis
sumber

Jawaban:

15

Berbagi taksonomi antara CPT

Saya ingin tahu apakah dua tipe konten khusus dapat membagikan satu taksonomi khusus.

Simple berkata: Ya, mereka bisa .

Cara berbagi

Seperti yang saya uraikan secara terperinci dalam posting blog ini , Anda harus selalu mendaftarkan taksonomi khusus dan jenis posting satu sama lain sedini mungkin.

Bungkus proses pendaftaran Anda dalam suatu fungsi, terhubung ke initkait pada prioritas default.

register_taxonomy(
    'some_custom_tax',
    'some_post_type',
    $array_of_arguments
);
register_post_type(
    'some_post_type',
    [
        'taxonomies' => [ 'some_custom_tax' ],
        // other arguments
    ]
);

Tidak peduli jika Anda menggunakan 2 nd argumen untuk register_taxonomy()atau jika Anda menggunakan register_taxonomy_for_object_type(), karena keduanya melakukan hal yang sama: Mereka mengambil $GLOBALS['wp_taxonomies']array dan menetapkan objek pasca tipe (type).

Catatan penting

Pastikan Anda mendaftarkan CT dan CPT satu sama lain saat mendaftar. Jika tidak, Anda tidak akan memiliki akses ke interkoneksi selama hook permintaan.

kaisar
sumber
2
Satu masalah yang saya temukan adalah bahwa admin tidak benar menampilkan jumlah posting untuk CPT setelah CT bersama digunakan di tempat lain.
Meetai.com
Saya tidak yakin apakah saya mengikuti. Pertanyaannya adalah tentang mendaftarkan CT ke beberapa CPT. Jawaban ini sepertinya menggambarkan mendaftar CPT dan CT satu sama lain.
Orang Brasil itu
4

Dari Codex:

taksonomi

(array) (opsional) Array taksonomi terdaftar seperti kategori atau post_tag yang akan digunakan dengan jenis posting ini. Ini dapat digunakan sebagai pengganti panggilan register_taxonomy_for_object_type()langsung. Taksonomi khusus masih harus didaftarkanregister_taxonomy() .

Ketika Anda mendaftarkan jenis posting Anda, Anda menetapkan taksonomi yang didukungnya, atau digunakan register_taxonomy_for_object_type() pada titik lain untuk menambahkan taksonomi ke jenis posting.

Anda dapat menetapkan taksonomi ke sebanyak mungkin jenis posting. Taksonomi tidak terikat pada jenis posting tertentu.

s_ha_dum
sumber
4

Saya dapat mencapai ini dengan mudah dengan melewati larik semua jenis pos kustom yang ingin saya bagikan taksonomi, Jadi kode saya terlihat seperti ini:

add_action( 'init', 'build_taxonomies', 0 );
 function build_taxonomies() {
    register_taxonomy( 'some_custom_tax', array('some_post_type_1','some_post_type_2'), array( 'hierarchical' => true, 'label' => 'Custom Tax Title', 'query_var' => true, 'rewrite' => true ) );   
}
Kevin Ochieng
sumber
Ini harus menjadi jawaban yang diterima IMO. Ringkas dan to the point.
FaCE