Birden fazla özel yazı türü özel bir taksonomiyi paylaşabilir mi?


23

WordPress'te drupal bir site yeniden inşa etmeyi düşünüyorum ve hala kafamı sistemler arasındaki farklar - özellikle de cck / fields ve özel içerik türleri ve taksonomiyi kullanmanın farklı yolları üzerine sarılıyorum.

İki özel içerik türünün bir özel taksonomiyi paylaşıp paylaşamayacağını bilmek isterim. Drupal'da belirli bir içerik türünün gönderimini bir kullanıcı grubuyla sınırlayabilirim ve daha sonra bu gönderinin yalnızca bir veya daha fazla başka içerik türüyle (ancak tüm türlerde değil) paylaşılan bir taksonomisine sahip olabilirim.

Rol scoper ile mümkün görünen kullanıcı yönünü terk etmek, bunu wordpress ile yapabilir misiniz? Özel içerik türünü yalnızca özel taksonomiyle görmüştüm, ancak belirli bir taksonomiyi iki yerde yeniden yaratmadan veya kategoriler / etiketler aracılığıyla küresel olarak etkinleştirmeden 2 veya daha fazla özel içerik türü arasında paylaşmanın bir yolu olmadı ...

Teşekkürler -Chad.

Yanıtlar:


15

CPT'ler arasında taksonomi paylaşımı

İki özel içerik türünün bir özel taksonomiyi paylaşıp paylaşamayacağını bilmek isterim.

Basit dedi ki: Evet, yapabilirler .

Nasıl paylaşılır

Ben ayrıntılı olarak ayrıntılı olarak bu blog yayınında , sen gerektiğini her zaman kayıt özel taksonomilerin ve post türlerini birbirine mümkün olduğunca erken.

Kayıt işleminizi init, varsayılan önceliğe göre kancaya bağlı bir fonksiyona sarın .

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

Her ikisi de aynı şekilde olduğu gibi 2. argümanı kullanmanız register_taxonomy()veya kullanmanız farketmez register_taxonomy_for_object_type(): $GLOBALS['wp_taxonomies']Diziyi alıp yazı tipi nesnesine (tip) atarlar.

Önemli Not

Sadece CT ve CPT’leri kaydettiklerinde birbirinize kaydettiklerinden emin olun. Aksi halde, sorgu kancaları sırasında bu bağlantıya erişemezsiniz.


2
Bulduğum bir sorun, paylaşılan CT başka bir yerde kullanıldığında yöneticinin CPT'ye gönderilen gönderi sayısını doğru göstermemesidir.
Meetai.com

Takip edip etmediğimden emin değilim. Soru, bir BT'yi birden fazla CPT'ye kaydetmekten bahsediyor. Bu cevap, her iki yönde de bir CPT ve CT kaydettirdiğini gösteriyor gibi görünüyor.
Brezilyalı Adam

4

Kodekinden:

taksonomilerin

(dizi) (isteğe bağlı) Bu yazı türüyle kullanılacak kategori veya posta_ etiketi gibi kayıtlı taksonomi dizisi. Bu register_taxonomy_for_object_type()doğrudan arama yerine kullanılabilir . Özel taksonomilerin hala kayıtlı olmaları gerekmektedir register_taxonomy().

Posta türünüzü kaydettiğinizde, desteklediği taksonomileri atarsınız veya register_taxonomy_for_object_type()taksonomiyi posta tipine eklemek için başka bir noktada kullanırsınız.

İstediğiniz sayıda gönderi türüne bir taksonomi atayabilirsiniz. Taksonomiler belirli bir posta tipine bağlı değildir.


4

Taksonomiyi paylaşmak istediğim tüm Özel gönderi türlerinden bir dizi geçirerek bunu kolayca başarabildim, Kodum şöyle görünüyordu:

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

Bu kabul edilen cevap IMO olmalıdır. Özlü ve noktaya.
FaCE
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.