Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Kupası
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPress’te Özel Yazı Türüne Kategoriler Nasıl Eklenir

Özel bir gönderi türüne kolayca kategori eklemenin bir yolunu mu arıyorsunuz?

Kategoriler WordPress’teki yerleşik taksonomilerden biridir, ancak varsayılan olarak yalnızca yazılarda görünürler.

Bu makalede, WordPress’te özel bir yazı türüne nasıl kategori ekleyeceğinizi göstereceğiz.

Adding categories to custom post types in WordPress

Özel Yazı Türüne Ne Zaman Kategori Eklemeniz Gerekebilir?

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

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

Ayrıca filmlerinizi uygun konu başlıklarında düzenlemeniz gerekebilir, bunun için özel bir taksonomiye ihtiyacınız olacaktır. Tür adında bir taksonomi oluşturabilirsiniz.

Ancak, blog gönderileriniz için kullandığınız kategorilerin aynısını Filmler gönderi türünde kullanmak isterseniz ne olur?

Bu, özel yazı türünüz için kategorileri etkinleştirmeniz gereken zamandır. 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 yazı türüne nasıl kolayca kategori eklenebileceğine bir göz atalım.

Bir Eklenti ile Özel Yazı Türüne Kategoriler Ekleme

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

Custom Post Type UI eklentisi ile özel yazı türünüzü kategoriler de dahil olmak üzere herhangi bir yerleşik veya özel taksonomi ile ilişkilendirme seçeneğine sahipsiniz.

Öncelikle Custom Post Type UI eklentisini yüklemeniz ve etkinleştirmeniz gerekir. Daha fazla ayrıntı için, bir WordPress eklentisinin nasıl kurulacağına ilişkin adım adım kılavuzumuza bakın.

Kurulumdan sonra, yeni bir özel yazı türü oluşturmak veya eklenti ile oluşturduğunuz mevcut bir özel yazı türünü düzenlemek için CPT UI ” Yazı Türleri Ekle/Düzenle sayfasını ziyaret etmeniz gerekir.

Editing post types with CPT UI plugin

Ayarlar Seçeneklerinin bulunduğu aşağıya doğru kaydırın. Oradan, Taxnomies alanını göreceksiniz.

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

Turn on categories for a Custom Post Type in WordPress

Ayarlarınızı saklamak için ‘Yazı Türünü Kaydet’ düğmesine tıklamayı unutmayın.

Artık söz konusu yazı türü altındaki herhangi bir içeriği düzenleyebilir ve WordPress blok düzenleyicisinin sağ sütununda kategori seçme seçeneğini görebilirsiniz.

Category added to a custom post type

Kod ile Özel Yazı Türüne Manuel Olarak Kategori Ekleme

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

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

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

İçinde başka bir özel taksonomi bulunan özel gönderi türünüz için mevcut kodda bu satıra zaten sahip olmanız muhtemeldir. Eğer varsa, bundan sonra bir virgül eklemeniz ve aşağıdaki gibi bir kategori eklemeniz yeterlidir:

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

Burada, yerleşik kategorileri destekleyen ‘Filmler’ adlı özel bir gönderi türü oluşturduğumuz tam bir kod örneği yer almaktadı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 Yazı Türü Görüntüleme

Varsayılan olarak, WordPress sitenizdeki kategori sayfaları yalnızca varsayılan ‘Yazılar’ yazı türünü görüntüler.

Missing post type

Ö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ı yazmayı unutmayın.

Bu kodu piyasadaki en iyi kod parçacıkları 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üklemeniz ve etkinleştirmeniz gerekir. Yardıma ihtiyacınız varsa, WordPress eklentisi yükleme hakkındaki eğitimimize bakın.

Eklenti etkinleştirildikten sonra, WordPress panosundan Code Snippets ” Snippet Ekle bölümüne gidin.

Snippet Ekle sayfasından, farenizi ‘Özel Kodunuzu Ekleyin (Yeni Snippet)’ seçeneğinin üzerine getirin ve ‘Snippet kullan’ düğmesine tıklayın.

Add a new custom code snippet in WPCode

Ardından, sayfanın üst kısmına snippet’iniz için bir başlık ekleyin, bu sadece referansınız içindir ve kodun ne için olduğunu hatırlamanıza yardımcı olacak herhangi bir şey olabilir.

Ardından, yukarıdaki kodu ‘Kod Önizleme’ kutusuna yapıştırın ve sağdaki açılır menüden kod türü olarak ‘PHP Snippet’i seçin.

Paste code into the Code Preview box and choose the code type

Bundan sonra, sayfanın üst kısmındaki anahtarı ‘Etkin Değil’den ‘Etkin’e getirin ve ‘Snippet’i Kaydet’ düğmesine tıklayın.

Activate and save your custom code snippet

Artık bir kategori arşivi sayfasını ziyaret edebilirsiniz ve özel gönderi türünüzdeki girişleriniz görüntülenecektir.

Post type displayed on categories archive page

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

WordPress’te Kategoriler Hakkında Uzman Kılavuzları

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

Umarız bu makale WordPress’te özel yazı türünüze nasıl kategori ekleyeceğinizi öğrenmenize yardımcı olmuştur. Ayrıca web sitenizi büyütmek için mutlaka sahip olmanız gereken WordPress eklentileri uzman seçimimizi veya blog trafiğinizi nasıl artıracağınıza ilişkin bu ipuçlarını görmek isteyebilirsiniz.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

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

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Ultimate WordPress Araç Kiti

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

Reader Interactions

39 yorumBir Cevap Bırakın

  1. Chandu Mullangi

    Hi tanks for this article

    To Displaying Multiple Post Types on Category Page code is working well.

    I want to display multiple post types on Tags page, Can you please share that code.

    • WPBeginner Support

      To have tags added to your custom post types you would add ‘post_tag’ to your taxonomy array so it would look like:

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

      Yönetici

  2. Muhamad Shahzad

    How can we separate the category lists custom post type from the blog post categories. i added above code and it works. But the issue is categories of this custom post type and blog posts are mixed. they should be separated.

    • WPBeginner Support

      The goal of this tutorial is to have them mix, for what you are looking for it may be best to use a different category for the custom post types for them to not appear in your category archive pages.

      Yönetici

  3. Poulomi Basu

    Hello,
    I used this code and it worked perfectly! The CPT shows in the post category that I chose for it.
    But it doesn’t show in my blog archive. Like the default archive, which shows all posts.
    How can I show it there as well?

    Thanks a lot!

  4. Connie

    Please tell me how to add a CPT-category to a menu?

    I have the CPT “article” with category “car” and “truck”

    I want to have a custom menu with these entries:

    All – cars – trucks

    I search and search and don’t find it. I see the categories in the menu-administration and I can add them to the menue, but the result of these links = blank pages
    I suppose that the listed categories are meant as post-categpories and not as cpt-categpories…

    Do you have a hint for me?

    Connie

    • WPBeginner Support

      You may want to check your screen options in the menu area to see if the custom post type is an option there for you to add that is unchecked currently

      Yönetici

  5. Vico

    I’ve created a post type called products and use core wp categories,
    My product url structure is mysite.com/product/skf bearing 12
    My category pages show mysite.com/category/bearings
    Why product url doesn’t display the Category inside the Url? Like this
    mysite.com/bearings/skf bearing 12
    My custom post permalink is %category%%post%
    I saved the permalink but still showing the same structure

  6. dharamjeet

    hey! my default posts category list shows in custom post type category list

    please help me to correct it

  7. carlos ballin

    finally works for me :) thank you

  8. Moises

    Why did u add the twentythirteen in the code?

    • WPBeginner Support

      Hi Moises,

      This string is used for translation. If your theme supports translation, then you need to replace it with your theme’s text domain. If you are unsure about what to use here, then ask your theme support. You can also paste it as is and those strings will be ignored.

      Yönetici

  9. Brian

    FYI, this will break your bulk edit in the admin. I added this to a bunch of post types and when I go to bulk edit, the post_type part of the query becomes “Array” instead of the post type its trying to edit in the admin.

    To get around this you just need to add this before if( is_category() ):

    `if ( is_admin() ) return;`

  10. rose

    Hi, I need some help.
    I have 2 CPT and I don’t want them to have a shared taxonomy.
    Like
    CPT 1
    – Taxonomy (Types)
    – Type A
    – Type B
    CPT 2
    – Taxonomy (Types)
    – Type c
    – Type D
    Note: I dont want to show here the types A&B from CPT 1
    Thank you

    • WPBeginner Support

      Hi Rose,

      When creating your taxonomies you can name them differently and allow them to have same labels.

      Yönetici

      • Gabriela

        How to add a second custom post type?
        I tried repeating the code only changing the names of my CPTs but it doesn’t work…
        Any ideas?

  11. Arun Sathiya

    The displaying CPT in category pages code works like a charm, thank you! But, there is something that you should note though. The latest post / CPT post tagged with a category name does not show up on that category page immediately. It shows up only on the second similar action – only when another post / CPT post is added to the same category, the first post appears on that category page. is there a fix to this?

  12. Sonjoe

    I am using CPT UI. I created custom post type “jobs” and allowed categories. But this same categories is also on Posts. They using the same categories. It is possible, that my custom post type “jobs” will have own categories and classic posts will have own categories? Thanks

    • Rizky

      Same question. Do we need to run a custom query if we want to create a category archive of that custom post type?

  13. fathur

    how do you deal with Recent Posts sidebar widget that also list the menu item?

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

  14. vivek

    Thanks for the great tutorial here. :)

    Can you please tell me how can i show custom posts by category on separate page.

    Default category page is working properly, it displays the posts. but when I tried to display posts under the same category in a different page, it returns empty array. Pleas help

  15. Matthew Wright

    Thank you! This is awesome. It solved simply a problem that I’ve been working on with much more convoluted solutions (that didn’t work).

    One question though, I’ve never added the taxonomy declaration when creating custom taxonomies for my CPTs and the taxonomies have always worked. I added just the ‘category’ to see what would happen and it worked beautifully, added post categories to my CPT with no ill effect on the existing custom taxonomies.

    Is it best practice though to put custom tax in the CPT arguments?

    Thanks again for sharing :)

    • WPBeginner Support

      Yes, if you already know that you will be using a custom taxonomy for that particular post type.

      Yönetici

  16. Daisy

    Custom code for adding category and sub categorues in custom post type.If i choose $post_type = array(‘nav_menu_item’, ‘post’, ‘myPostType’); code for displaying my categories it only display that category only but if i reuse the same function for another category it won’t work.please give any idea

  17. Chris Najman

    Hello. I successfully created a custom post type (Artwork) in functions.php. Then I created a custom taxonomy (‘hierarchical’ => true) which means I can add custom categories when I create a new Artwork post.

    I was wondering if, within the same custom taxonomy function, I could pre-define the categories for the Artwork post.

    What I want are only two categories to be selectable by the user : 1) Painting, 2) Sculpture. I don’t want the user to be able to add any more categories. Ideally, the user would be ‘forced’ to choose one or the other category, i.e. the post wouldn’t be publishable unless a category had been chosen.

    Is this possible?

  18. Mau Ferrusca

    I am adding more then one categories to several custom post types.

    How can you add more than one in the line:

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

    ?

    Thanks!

    • Mau Ferrusca

      Already solved my problem.

      Perhaps instinctively, I started listing my custom post types as an array, but turns out that all I needed to do was to list them inside the $post_type object, separated with commas.

      Thanks!

  19. Eren

    Hi, i have a question. I’m using a plugin as a post type and it has its own category area. I want to use my wordpress’s core categories in this plugin but couldnt able to do it so far. I used the plugin above and after that it creates 2 categories area under the plugin and when i want to show the posts under that post type with categories, it shows nothing as the plugin’s own category list is empty. I tried lots of things including manipulating the code of the plugin yet none solved my issue. Is there a way you can suggest?

    • Davide

      Did you find any solution for this issue?

  20. David

    Has this article been updated recently to work with the current version of WP? I noticed the plugin used hasn’t been updated in over 2 years, which makes me a little hesitant to use it.

    • David

      Sorry, nevermind, I see the updated info.

  21. Piyush

    Thanks for the great tutorial. can you please tell me how can i show custom posts by category on separate page. Lets say i have CPT “talent” and a category “art”. I have two different posts one is created under CPT “talents” and other is general post created under “posts”. Both posts are assigned to “art” category(this is common for both CPT and general posts). Now i know that for the general posts you can view the category page as example.com/category/art/. For CPT category page i guess the url should be example.com/talent/art/ but it is giving me 404 error.

    • WPBeginner Support

      Try updating your permalink structure. Simply visit Settings » Permalinks and then click on the save changes button without changing anything.

      Yönetici

  22. Robert

    Well done thanks!
    I have a couple of troubles:
    – in “Categories” widget appear the Categories of Custom Post Types but on clic it returns a “nothing found” message.
    – in “Recent Posts” widget don’t appear Custom Post Type Posts.
    There is a way to fix it?

  23. Hemang Rindani

    Interesting article. WordPress is a powerful enterprise web content management service that allows a company to have efficient websites that suits their business requirements. It’s easy to use and effortless tools makes the development look easier. From responsive design to security and expand-ability, WordPress CMS has it all in it however, searching the right tools for a website is important.
    Adding category to custom post type sometimes becomes a necessity for differentiating one post from other where the methods mentioned in the article will be useful. Using plugin will be an easy method where even a non-technical person will be able to implement this, however with this article, I don’t feel that using code to add this feature by a non-technical person will be difficult.
    Thanks for sharing.

  24. Emily Johns

    Great tips, I’ve got the way to fix my problem with this. Thanks!

Bir Cevap Bırakın

Yorum bırakmayı seçtiğiniz için teşekkür ederiz. Lütfen tüm yorumların yorum poli̇ti̇kasi uyarınca denetlendiğini ve e-posta adresinizin yayımlanmayacağını unutmayın. Ad alanında anahtar kelime KULLANMAYIN. Kişisel ve anlamlı bir sohbet edelim.