En çok ihtiyaç duyduğunuzda güvenilir WordPress eğitimleri.
WordPress Başlangıç Rehberi
WPB Kupası
25 Milyon+
Eklentilerimizi kullanan web siteleri
16+
Yıllık WordPress deneyimi
3000+
Uzmanlardan WordPress eğitimleri

WordPress'te Özel Bir Gönderi Türüne Kategori Ekleme

Okuyucularımızdan biri yakın zamanda WordPress'e özel bir gönderi türüne kategori eklemenin yollarını sormuştu. 

Kategoriler, WordPress'teki yerleşik taksonomilerden biridir ve öncelikle blog gönderileri için kullanılır. Ancak, özel gönderi türlerinde otomatik olarak görünmezler, bu da organizasyon seçeneklerinizi sınırlar.

Neyse ki, WordPress web siteleri üzerinde yıllarca çalışarak bu soruna basit çözümler bulduk.

Bu makalede, WordPress'te özel bir gönderi türüne kategorilerin nasıl ekleneceğini göstereceğiz.

WordPress'te özel gönderi türlerine kategori ekleme

Özel Bir Gönderi Türüne Kategoriler Ne Zaman Eklerebilirsiniz?

WordPress, eklenti geliştiricilerinin ve web sitesi sahiplerinin kendi içerik türlerini oluşturmalarına olanak tanır. yazılar ve sayfalar gibi, bu özel gönderi türleri de kategoriler ve etiketler gibi kendi taksonomilerine sahip olabilir.

Örneğin, film incelemeleri yayınlıyorsanız, ‘Filmler’ için özel bir gönderi türü oluşturmak isteyebilirsiniz.

Filmlerinizi uygun konulara göre düzenlemeniz de gerekebilir, bunun için özel bir taksonomiye ihtiyacınız olacaktır. Tür adında bir taksonomi oluşturabilirsiniz.

Ancak, blog yazılarınız için kullandığınız kategorileri Filmler gönderi türü ile de kullanmak isteseydiniz ne olurdu?

Özel gönderi türünüz için kategorileri etkinleştirmeniz gereken zaman budur. Bu, hem blog gönderileriniz hem de özel gönderi türünüz için aynı kategorileri kullanmanıza olanak tanır.

Bununla birlikte, şimdi WordPress'te özel bir gönderi türüne kolayca nasıl kategori ekleyeceğimize bir göz atalım.

Bir Eklenti ile Özel Bir Gönderi Türüne Kategoriler Ekleyin

Yeni başlayanlar için, özel yazı türleri oluşturmak üzere Custom Post Type UI eklentisini kullanmanızı öneririz. özel yazı türleri oluşturmak.

Özel Gönderi Türü Arayüzü eklentisi ile özel gönderi türünüzü kategoriler de dahil olmak üzere herhangi bir yerleşik veya özel taksonomi ile ilişkilendirme seçeneğiniz vardır.

Öncelikle, Custom Post Type UI eklentisini kurmanız ve etkinleştirmeniz gerekir. Daha fazla ayrıntı için, WordPress eklentisinin nasıl kurulacağına dair adım adım rehberimize bakın.

Kurulumdan sonra, yeni bir özel gönderi türü oluşturmak veya eklentiyle oluşturduğunuz mevcut bir özel gönderi türünü düzenlemek için CPT UI » Gönderi Türleri Ekle/Düzenle bölümünü ziyaret etmeniz gerekir.

CPT UI eklentisi ile gönderi türlerini düzenleme

Ayarlar Seçeneklerinin bulunduğu alt kısma doğru aşağı kaydırın. Oradan, Taksonomiler alanını göreceksiniz.

Kategoriler yanındaki kutuyu işaretlemeniz ve özel gönderi türünüzü kaydetmeniz gerekir.

WordPress'te Özel Bir İçerik Türü İçin Kategorileri Etkinleştirin

Ayarlarınızı kaydetmek için 'Yazı Türünü Kaydet' düğmesine tıklamayı unutmayın.

Artık, o belirli gönderi türü altındaki herhangi bir içeriği düzenleyebilirsiniz ve WordPress blok düzenleyicisinin sağ sütununda kategorileri seçme seçeneğini göreceksiniz.

Özel bir içerik türüne eklenen kategori

Kod ile Özel Bir Gönderi Türüne Manuel Olarak Kategori Ekleme

Özel gönderi türünüzü temanızın functions.php dosyasına kod ekleyerek, bir siteye özel eklenti veya bir kod parçacıkları eklentisi ile oluşturduysanız, kategori desteklenen taksonomi olarak eklemek için kodu değiştirmeniz gerekecektir.

Tek yapmanız gereken, özel gönderi türünüzün argümanlarına bu satırı eklemektir.

'taxonomies'  => array( 'category' ),

Muhtemelen, özel gönderi türünüz için zaten başka bir özel taksonomi içeren mevcut kodda bu satır bulunmaktadır. Eğer öyleyse, sadece sonuna bir virgül ekleyip şunu eklemeniz yeterlidir:

'taxonomies'          => array('topics', 'category' ),

Burada, yerleşik kategoriler desteğiyle 'Filmler' adlı özel bir gönderi türü oluşturduğumuz kodun tam bir örneği bulunmaktadır.

function custom_post_type() {
 
// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
        'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
        'menu_name'           => __( 'Movies', 'twentythirteen' ),
        'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
        'all_items'           => __( 'All Movies', 'twentythirteen' ),
        'view_item'           => __( 'View Movie', 'twentythirteen' ),
        'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
        'add_new'             => __( 'Add New', 'twentythirteen' ),
        'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
        'update_item'         => __( 'Update Movie', 'twentythirteen' ),
        'search_items'        => __( 'Search Movie', 'twentythirteen' ),
        'not_found'           => __( 'Not Found', 'twentythirteen' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
    );
     
// Set other options for Custom Post Type
     
    $args = array(
        'label'               => __( 'movies', 'twentythirteen' ),
        'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
        'labels'              => $labels,
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page',
        'show_in_rest'        => true,
         
        // This is where we add taxonomies to our CPT
        'taxonomies'          => array( 'category' ),
    );
     
    // Registering your Custom Post Type
    register_post_type( 'movies', $args );
 
}
 
/* Hook into the 'init' action so that the function
* Containing our post type registration is not 
* unnecessarily executed. 
*/
 
add_action( 'init', 'custom_post_type', 0 );

Kategori Sayfasında Birden Fazla Gönderi Türünü Gösterme

Varsayılan olarak, WordPress sitenizdeki kategori sayfaları yalnızca varsayılan 'Gönderiler' gönderi türünü görüntüler.

Eksik gönderi türü

Özel gönderi türlerinizi varsayılan gönderilerinizle aynı kategori sayfasında görüntülemek için bu kodu temanızın functions.php dosyasına veya bir kod parçacıkları eklentisine eklemeniz gerekir:

add_filter('pre_get_posts', 'query_post_type');
function query_post_type($query) {
  if( is_category() ) {
    $post_type = get_query_var('post_type');
    if($post_type)
        $post_type = $post_type;
    else
        $post_type = array('nav_menu_item', 'post', 'movies'); // don't forget nav_menu_item to allow menus to work!
    $query->set('post_type',$post_type);
    return $query;
    }
}

Not: 'movies' yerine kendi özel gönderi türünüzün adını eklemeyi unutmayın.

Bu kodu, piyasadaki en iyi kod parçacığı eklentisi olan WPCode kullanarak eklemenizi öneririz. WPCode, temanızın functions.php dosyasını düzenlemeden WordPress'e özel kod eklemeyi güvenli ve kolay hale getirir.

WPCode

Başlamak için, ücretsiz WPCode eklentisini yükleyip etkinleştirmeniz gerekir. Yardıma ihtiyacınız olursa, bir WordPress eklentisinin nasıl kurulacağına dair eğitimimize bakın.

Eklenti etkinleştirildikten sonra, WordPress kontrol panelinden Kod Parçacıkları » Parçacık Ekle bölümüne gidin.

Kod Parçacığı Ekle sayfasından, fare imlecini 'Özel Kodunuzu Ekleyin (Yeni Kod Parçacığı)' seçeneğinin üzerine getirin ve '+ Özel Kod Parçacığı Ekle' düğmesine tıklayın.

WPCode'da yeni bir özel kod parçacığı ekleyin

Ardından, ekranda beliren seçenekler listesinden kod türü olarak 'PHP Snippet'i seçin.

Kod türü olarak PHP Kod Parçacığı'nı seçin

Ardından, sayfanın üst kısmına, yalnızca sizin referansınız için olan ve kodun ne işe yaradığını hatırlamanıza yardımcı olacak herhangi bir şey olabilen bir başlık ekleyin.

Ardından, yukarıdaki kodu yapıştırın.

Kodu Kod Önizleme kutusuna yapıştırın

Bundan sonra, sayfanın üst kısmındaki anahtarı 'Etkin Değil'den 'Etkin'e getirin ve 'Kod Parçasını Kaydet' düğmesine tıklayın.

Özel kod parçacığınızı etkinleştirin ve kaydedin

Artık bir kategori arşiv sayfasını ziyaret edebilirsiniz ve bu sayfa özel gönderi türünüzdeki girişlerinizi gösterecektir.

Kategori arşiv sayfasında gösterilen gönderi türü

Etiketleri özel gönderi türlerinize eklemek için de aynı yöntemleri kullanabilirsiniz. Daha fazla bilgi edinmek için kategoriler ve etiketler hakkındaki rehberimize bakın.

WordPress'te Kategoriler Hakkında Uzman Rehberleri

WordPress'te kategorileri kullanma hakkında daha fazla bilgi edinmek ister misiniz? Bu eğitimlere göz atın:

Umarım bu makale, WordPress'te özel gönderi türünüze kategoriler eklemeyi öğrenmenize yardımcı olmuştur. Ayrıca web sitenizi büyütmek için mutlaka sahip olunması gereken WordPress eklentileri ve blog trafiğinizi nasıl artıracağınıza dair ipuçlarımıza da göz atmak isteyebilirsiniz.

Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

Açıklama: İçeriğimiz okuyucu desteklidir. Bu, bazı bağlantılarımıza tıklamanız durumunda komisyon kazanabileceğimiz anlamına gelir. WPBeginner'ın nasıl finanse edildiğini, neden önemli olduğunu ve bize nasıl destek olabileceğinizi görün. İşte editöryal sürecimiz.

Nihai WordPress Araç Seti

Araç Kitimize ÜCRETSİZ erişim kazanın - her profesyonelin sahip olması gereken WordPress ile ilgili ürün ve kaynaklardan oluşan bir koleksiyon!

Okuyucu Etkileşimleri

39 CommentsLeave a Reply

  1. Bu makale için teşekkürler

    Kategori Sayfasında Birden Fazla Gönderi Türünü Gösterme kodu iyi çalışıyor.

    Etiketler sayfasında birden fazla gönderi türü görüntülemek istiyorum, bu kodu paylaşabilir misiniz?

    • Özel içerik türlerinize etiket eklemek için taksonomi dizinize ‘post_tag’ eklemeniz gerekir, bu da şöyle görünür:

      ‘taxonomies’ => array( ‘category’, ‘post_tag’ ),

      Yönetici

  2. Özel gönderi türü kategori listelerini blog gönderisi kategorilerinden nasıl ayırabiliriz. Yukarıdaki kodu ekledim ve çalışıyor. Ancak sorun, bu özel gönderi türünün kategorileri ve blog gönderilerinin karışmış olmasıdır. Ayrılmaları gerekiyor.

    • Bu eğitimin amacı, aradığınız şey için özel gönderi türleri için farklı bir kategori kullanmak en iyisi olabilir, böylece kategori arşiv sayfalarınızda görünmezler.

      Yönetici

  3. Merhaba,
    Bu kodu kullandım ve mükemmel çalıştı! CPT, benim seçtiğim gönderi kategorisinde görünüyor.
    Ancak blog arşivimde görünmüyor. Varsayılan arşiv gibi, tüm gönderileri gösteren.
    Bunu orada da nasıl gösterebilirim?

    Çok teşekkürler!

  4. Bir menüye özel kategori (CPT) nasıl eklenir, lütfen söyler misiniz?

    CPT "makale" var, "araba" ve "kamyon" kategorileriyle

    Şu girişlerle özel bir menü istiyorum:

    Hepsi – arabalar – kamyonlar

    Arayıp duruyorum ve bulamıyorum. Menü-yönetimindeki kategorileri görüyorum ve menüye ekleyebiliyorum, ancak bu bağlantıların sonucu boş sayfalar
    Sanırım listelenen kategoriler, özel yazı tipi kategorileri (cpt) yerine gönderi kategorileri (post-categories) için tasarlanmış...

    Bana bir ipucunuz var mı?

    Connie

    • Özel gönderi türünün orada sizin için işaretlenmemiş bir seçenek olup olmadığını görmek için menü alanındaki ekran seçeneklerinizi kontrol etmek isteyebilirsiniz.

      Yönetici

  5. Ürünler adında bir gönderi türü oluşturdum ve çekirdek wp kategorilerini kullanıyorum,
    Ürün URL yapım mysite.com/product/skf bearing 12 şeklinde.
    Kategori sayfalarım mysite.com/category/bearings şeklinde gösteriyor.
    Neden ürün URL'si URL'nin içinde Kategoriyi göstermiyor? Şöyle ki
    mysite.com/bearings/skf bearing 12
    Özel gönderi kalıcı bağlantım %category%%post% şeklinde.
    Kalıcı bağlantıyı kaydettim ancak hala aynı yapıyı gösteriyor.

  6. Merhaba! Varsayılan gönderi kategorileri listem özel gönderi türü kategori listesinde görünüyor

    Lütfen düzeltmeme yardım eder misiniz

    • Merhaba Moises,

      Bu dize çeviri için kullanılır. Temanız çeviriyi destekliyorsa, bunu temanızın metin alanıyla değiştirmeniz gerekir. Ne kullanacağınızdan emin değilseniz, tema desteğinize sorun. Olduğu gibi yapıştırabilirsiniz ve bu dizeler yok sayılır.

      Yönetici

  7. Bilginiz olsun, bu toplu düzenlemenizi bozacaktır. Birçok gönderi türüne ekledim ve toplu düzenlemeye gittiğimde, sorgunun post_type kısmı, yönetici tarafında düzenlemeye çalıştığı gönderi türü yerine "Dizi" oluyor.

    Bunu aşmak için if( is_category() ): ifadesinden önce şunu eklemeniz yeterlidir:

    `if ( is_admin() ) return;`

  8. Merhaba, yardıma ihtiyacım var.
    2 tane özel içerik türüm (CPT) var ve bunların paylaşılan bir taksonomisi olmasını istemiyorum.
    Şöyle ki:
    CPT 1
    – Taksonomi (Türler)
    – Tür A
    – Tür B
    CPT 2
    – Taksonomi (Türler)
    – Tür C
    – Tür D
    Not: Burada CPT 1'den A ve B türlerini göstermek istemiyorum.
    Teşekkürler

      • İkinci bir özel içerik türü (custom post type) nasıl eklenir?
        Kodu tekrarlamayı denedim, sadece CPT'lerimin isimlerini değiştirdim ama işe yaramadı…
        Fikirleriniz var mı?

  9. Kategori sayfalarındaki özel gönderi türünü (CPT) gösterme kodu harika çalışıyor, teşekkürler! Ancak, dikkat etmeniz gereken bir şey var. Bir kategoriyle etiketlenmiş en son gönderi / CPT gönderisi o kategori sayfasında hemen görünmüyor. Yalnızca ikinci benzer işlemde görünür – aynı kategoriye başka bir gönderi / CPT gönderisi eklendiğinde, ilk gönderi o kategori sayfasında görünür. Bunun bir çözümü var mı?

  10. CPT UI kullanıyorum. "jobs" özel gönderi türü oluşturdum ve kategorilere izin verdim. Ancak bu aynı kategoriler Gönderiler'de de var. Aynı kategorileri kullanıyorlar. Özel gönderi türüm "jobs" kendi kategorilerine ve klasik gönderiler kendi kategorilerine sahip olabilir mi? Teşekkürler

    • Aynı soru. Özel gönderi türünün bir kategori arşivini oluşturmak istersek özel bir sorgu çalıştırmamız gerekir mi?

  11. Son Gönderiler kenar çubuğu widget'ı menü öğesini de listeleyen ile nasıl başa çıkıyorsunuz?

    $post_type = array(‘nav_menu_item’, ‘post’, ‘movies’);

  12. Thanks for the great tutorial here. :)

    Özel gönderileri kategoriye göre ayrı bir sayfada nasıl gösterebileceğimi söyler misiniz?

    Varsayılan kategori sayfası düzgün çalışıyor, gönderileri gösteriyor. ancak aynı kategori altındaki gönderileri farklı bir sayfada göstermeye çalıştığımda boş dizi dönüyor. Lütfen yardım edin

  13. Teşekkürler! Bu harika. Çok daha karmaşık çözümlerle (işe yaramayan) üzerinde çalıştığım bir sorunu basitçe çözdü.

    Ancak bir sorum var, CPT'lerim için özel taksonomiler oluştururken taksonomi bildirimini hiç eklemedim ve taksonomiler her zaman çalıştı. Ne olacağını görmek için sadece 'category' ekledim ve harika çalıştı, mevcut özel taksonomiler üzerinde hiçbir olumsuz etki olmadan CPT'me gönderi kategorileri ekledi.

    Özel vergi (custom tax) CPT argümanlarına yerleştirmek en iyi uygulama mıdır?

    Thanks again for sharing :)

  14. Özel gönderi türünde kategori ve alt kategoriler eklemek için özel kod. Eğer $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); kodunu kategorilerimi görüntülemek için seçersem, yalnızca o kategoriyi görüntüler, ancak aynı işlevi başka bir kategori için yeniden kullanırsam çalışmaz. Herhangi bir fikir verebilir misiniz?

  15. Merhaba. functions.php'de başarıyla özel bir gönderi türü (Artwork) oluşturdum. Ardından özel bir taksonomi ('hierarchical' => true) oluşturdum, bu da yeni bir Artwork gönderisi oluştururken özel kategoriler ekleyebileceğim anlamına geliyor.

    Aynı özel taksonomi fonksiyonu içinde, Artwork gönderisi için kategorileri önceden tanımlayabilir miyim diye merak ediyordum.

    Kullanıcının yalnızca iki kategori seçebilmesini istiyorum: 1) Resim, 2) Heykel. Kullanıcının başka kategori eklemesini istemiyorum. İdeal olarak, kullanıcı bu iki kategoriden birini seçmeye 'zorlanmalı', yani bir kategori seçilmediği sürece gönderi yayınlanamaz olmalı.

    Bu mümkün mü?

  16. Birden fazla kategoriyi birkaç özel gönderi türüne ekliyorum.

    Satıra birden fazla nasıl ekleyebilirsiniz:

    $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’);

    ?

    Teşekkürler!

    • Sorunumu zaten çözdüm.

      İçgüdüsel olarak, özel gönderi türlerimi bir dizi olarak listelemeye başladım, ancak tüm yapmam gerekenin onları $post_type nesnesinin içine, virgülle ayrılmış olarak listelemek olduğunu anladım.

      Teşekkürler!

  17. Merhaba, bir sorum var. Bir eklenti kullanıyorum ve kendi kategori alanı var. Bu eklentide wordpress'in çekirdek kategorilerimi kullanmak istiyorum ama henüz yapamadım. Yukarıdaki eklentiyi kullandım ve sonrasında eklentinin altında 2 kategori alanı oluşturuyor ve bu gönderi türünün gönderilerini kategorilerle göstermek istediğimde, eklentinin kendi kategori listesi boş olduğu için hiçbir şey göstermiyor. Eklentinin kodunu manipüle etmek de dahil olmak üzere birçok şey denedim ama hiçbiri sorunumu çözmedi. Önerebileceğiniz bir yol var mı?

  18. Bu makale WP'nin mevcut sürümüyle çalışacak şekilde yakın zamanda güncellendi mi? Kullandığınız eklentinin 2 yılı aşkın süredir güncellenmediğini fark ettim, bu da onu kullanma konusunda beni biraz tereddüt ettiriyor.

  19. Harika eğitim için teşekkürler. Özel gönderileri kategoriye göre ayrı bir sayfada nasıl gösterebileceğimi söyler misiniz? Diyelim ki 'talent' adında bir CPT'm ve 'art' adında bir kategorim var. Biri 'talents' CPT'si altında oluşturulmuş, diğeri ise 'posts' altında oluşturulmuş genel bir gönderi olmak üzere iki farklı gönderim var. Her iki gönderi de 'art' kategorisine atanmış durumda (bu hem CPT hem de genel gönderiler için ortaktır). Şimdi genel gönderiler için kategori sayfasını example.com/category/art/ gibi görüntüleyebileceğimi biliyorum. CPT kategori sayfası için sanırım URL example.com/talent/art/ olmalı ama 404 hatası veriyor.

    • Kalıcı bağlantı yapınızı güncellemeyi deneyin. Sadece Ayarlar » Kalıcı Bağlantılar bölümüne gidin ve herhangi bir değişiklik yapmadan kaydet düğmesine tıklayın.

      Yönetici

  20. Aferin, teşekkürler!
    Birkaç sorunum var:
    – “Kategoriler” widget'ında Özel Gönderi Tiplerinin Kategorileri görünüyor ancak tıklayınca “hiçbir şey bulunamadı” mesajı dönüyor.
    – “Son Gönderiler” widget'ında Özel Gönderi Tipi Gönderileri görünmüyor.
    Bunu düzeltmenin bir yolu var mı?

  21. İlginç bir makale. WordPress, bir şirketin iş gereksinimlerine uygun verimli web sitelerine sahip olmasını sağlayan güçlü bir kurumsal web içerik yönetim hizmetidir. Kullanımı kolay ve zahmetsiz araçları, geliştirmeyi daha kolay hale getiriyor. Duyarlı tasarımdan güvenliğe ve genişletilebilirliğe kadar WordPress CMS'de hepsi mevcut, ancak bir web sitesi için doğru araçları aramak önemlidir.
    Özel gönderi türüne kategori eklemek, bir gönderiyi diğerinden ayırt etmek için bazen bir gereklilik haline gelir ve makalede belirtilen yöntemler faydalı olacaktır. Eklenti kullanmak, teknik bilgisi olmayan bir kişinin bile uygulayabileceği kolay bir yöntem olacaktır, ancak bu makale ile, teknik bilgisi olmayan bir kişinin bu özelliği eklemek için kod kullanmasının zor olacağını düşünmüyorum.
    Paylaştığınız için teşekkürler.

  22. Harika ipuçları, sorunumu bununla çözmenin yolunu buldum. Teşekkürler!

Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkürler. Lütfen tüm yorumların yorum politikamıza göre denetlendiğini ve e-posta adresinizin YAYINLANMAYACAĞINI unutmayın. Lütfen isim alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.