WordPress Özel Gönderi Türleri – Başlangıç Kılavuzu
Yayınlanan: 2017-01-04WordPress artık sadece blog yazıları yazmak ve yayınlamak için bir araç değil. Yıllar içinde, genişletilebilir, esnek ve sağlam bir içerik yönetim sistemine dönüşmüştür. WordPress yavaş ama emin adımlarla web uygulamaları oluşturmak için tam teşekküllü bir çerçeve olma yolunda ilerliyor. Bu CMS'yi bu kadar ayarlanabilir yapan şeylerden biri de Özel Gönderi Türleridir.
Varsayılan olarak, WordPress 5 içerik gönderi türüyle gelir, bunlardan 2'si size çok tanıdık gelebilir: gönderi ve sayfa. Ancak kullanıcılar, ihtiyaç duydukları kadar çok özel gönderi türü oluşturabilir ve bunları ihtiyaçlarını karşılamak için WordPress'te ince ayar yapmak için kullanabilir. Bu makalede, WordPress özel gönderi türlerini ve harika web siteleri oluşturmanıza nasıl yardımcı olabileceklerini öğreneceğiz. Özel gönderi türleri oluşturmanın iki yolunu ele alacağız: manuel olarak ve bir eklenti kullanarak.
WordPress Özel Gönderi Türleri
WordPress, kutudan çıkar çıkmaz aşağıdaki gönderi türleriyle birlikte gelir:
- Postalamak
- Sayfa
- Revizyon
- Ek
- Navigasyon Menüsü
WordPress, benzersiz seçeneklere ve özelliklere izin vererek gönderi türlerinin her birine farklı davranır. Basit bir örnek, "post" yazı tipine özel kategoriler ve etiketler olabilir. Blog yayınınızı belirli bir kategoriye ayarlayabilirsiniz, ancak aynısını statik bir sayfa için yapamazsınız. Sayfalar ise ebeveyn ve şablonlara sahip olabilir.
Şimdiye kadar bahsedilen gönderi türleri WordPress tarafından ayrılmıştır. Kullanıcılar, web sitesinin işlevselliğini genişletmek ve içeriklerini daha iyi düzenlemek için kendi özel gönderi türlerini oluşturabilir. Genellikle, özel gönderi türleri oluşturmak, belirli bir gönderi türüne özgü benzersiz içerik ve seçenekler eklemenize izin veren özel alanlar ve özel taksonomiler oluşturma ile el ele gider. Ancak bunları başka bir zamana bırakalım ve web sitemiz için benzersiz bir gönderi türü oluşturmaya odaklanalım.
Özel Gönderi Türü Örnekleri
Bir gönderi türü, web siteniz için ihtiyaç duyduğunuz herhangi bir içerik türü olabilir. Diyelim ki podcast bölümlerini görüntülemesi gereken ve ara sıra ancak ayrı blog gönderileri yayınlaması gereken bir podcast web sitemiz var. Şimdi, tüm içeriğimizi (Podcast'ler ve blog gönderileri) tek bir yerde karıştırırsak, içerik bölümümüz gerçekten çok hızlı bir şekilde dağınık hale gelecektir. Bu nedenle, ara sıra blog gönderilerimiz için, WordPress'te varsayılan sınıflandırmaları kullanmamıza izin veren varsayılan “post” gönderi türünü kullanacağız: kategoriler ve etiketler.
Podcast bölümümüze gelince, Podcast adında özel bir gönderi türü oluşturacağız. Bu şekilde web sitesindeki iki farklı içerik türünü ayırabilir ve düzgün bir şekilde organize etmelerini sağlayabiliriz. Daha sonra podcast bölümümüz için bölüm süresi, şov sunucuları, bağlantılar vb. gibi özel alanlar oluşturabiliriz. Ek olarak, Podcast kategorileri, Podcast Şovları ve daha fazlası gibi bu tür içeriğe özel özel taksonomiler ayarlayabiliriz. Bunun nereye gittiğini ve WordPress'in içerik manipülasyonu ve yapısı açısından ne kadar esneklik sunduğunu görüyorsunuz.
WordPress'te Özel Bir Yazı Tipi Oluşturma
WordPress'te özel bir gönderi türü oluşturmanın 2 yolu vardır: manuel olarak (oldukça kolay, ancak kodlamaya biraz aşinalık gerektirir) ve bir eklenti kullanmak (çok daha kolay bir yöntem, ancak eklentiyi yüklü tutmanızı gerektirir). Hangisini seçmelisin? Birçok eklentiye sahip olmak, uyumsuzluk, performans sorunları ve hatalı kod nedeniyle başınızı ağrıtabilir. Zaten yüklü bir sürü eklentiniz varsa, bu sefer ellerinizi kirletmek isteyebilirsiniz. Her iki yöntemi de ele alacağız ve hangisinin sizin için en iyi olduğuna siz karar vereceksiniz.
Eklenti Kullanmak
Özel gönderi türleri oluşturmak için bir avuç eklenti var. En popüler olanlardan biri, gönderi türünüz için özel sınıflandırmalar oluşturmanıza olanak tanıyan Özel Gönderi Türü Kullanıcı Arayüzü'dür.
Önemli not: Bir eklenti ile oluşturulan gönderi türleri, söz konusu eklentiyi kaldırırsanız kaybolacaktır. Veriler veritabanında olacak, ancak özel gönderi türünüz kaydedilmeyecek ve yönetici alanından erişilemeyecek.
Bu eklentinin arayüzü oldukça sezgisel ve basittir. Yeni Ekle'ye tıklarsınız ve ardından özel gönderi türü için bir gönderi türü adı, etiketi, tekil etiketi ve açıklaması sağlarsınız. 5 WordPress gönderi türü ayrılmış değildir ve bu adları kullanamazsınız. Girmeniz gerekenlere bir örnek:
Gönderi Türü Adı: Podcast'ler
Etiket: Podcast'ler
Tekil İsim: Podcast
Açıklama: Podcasting için gönderi türü
Tekil ad alanı, WordPress tarafından bazı UI öğelerini ve Yeni Podcast Ekle gibi eylemleri görüntülemek için kullanılır.
manuel olarak
Manuel olarak özel bir gönderi türü oluşturmak için temanızın function.php dosyasını değiştirmeniz gerekir. Favori FTP istemcinizi kullanın ve web sitenizin barındırıldığı sunucuda oturum açın. Bağlandıktan sonra yapmanız gerekenler:
1. wp-content -> theme -> temanıza gidin
2. Functions.php'yi açın
3. Bir alt tema kullanıyorsanız ve böyle bir dosya yoksa onu oluşturun.
4. Aşağıdaki kodu girin.
Örneğimize göre, bir podcast özel gönderi türü oluşturmamız gerekiyor. İşte bunun kodu (4. adımdan itibaren: aşağıdaki kod function.php dosyanıza girer):
// Registering CPT function podcast_post_type() { //Setting up the user interface labels for podcasting CPT $labels = array( 'name' => _x( 'Podcasts', 'Post Type General Name' ), 'singular_name' => _x( 'Podcast', 'Post Type Singular Name' ), 'menu_name' => __( 'Podcasts' ), 'name_admin_bar' => __( 'Podcast' ), 'parent_item_colon' => __( 'Parent Podcast' ), 'all_items' => __( 'All Podcasts' ), 'add_new_item' => __( 'Post New Podcast' ), 'add_new' => __( 'New Podcast' ), 'new_item' => __( 'New Podcast' ), 'edit_item' => __( 'Edit Podcast' ), 'update_item' => __( 'Update Podcast' ), 'view_item' => __( 'View Podcast' ), 'search_items' => __( 'Search Podcasts' ), 'not_found' => __( 'No Podcasts found' ), 'not_found_in_trash' => __( 'No Podcasts found in trash' ) ); //Setting up other options for Podcasts CPT $args = array( 'label' => __( 'Podcasts' ), 'labels' => $labels, 'description' => __( 'Creating and managing podcasts' ), 'supports' => array( 'title', 'editor', 'excerpt', 'thumbnail', 'comments', 'revisions', 'custom-fields' ), //Initially supported features 'taxonomies' => array( 'podcast-category'), //If custom taxonomies exist, insert their names in the array 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, ); //Registering custom post type register_post_type( 'podcasts', $args ); } // Hook into init action add_action( 'init', 'podcasts_post_type', 0 );
Kodun bu kısmı karmaşık görünebilir ama aslında değil. Sadece özel gönderi türü için bir sürü seçenek ekliyor ve neyi destekleyeceğini belirtiyorsunuz. Dikkat:
- $labels dizisi, WordPress'e yazı tipinin yönetici panelinde nasıl görüntüleneceğini söyler.
- $args dizisi, $labels dizisinden tüm yapılandırmayı yükler ve özel gönderi türü için seçenekleri belirtir.
- Sihir, ana podcasts_post_type() işlevi içinde register_post_type( 'podcasts', $args ) işlevi 2 bağımsız değişkenle çağrıldığında gerçekleşir: özel gönderi türünün adı ve $args içinde saklanan seçenekler (bir ilişkisel dizidir). Ardından, podcasts_post_type() işlevini başlatmaya bağlarız ve WordPress'in yüklemesine izin veririz.
Kaydet'e tıkladığınızda ve değiştirilmiş function.php dosyasını temanızın klasörüne yüklediğinizde, WordPress yönetici panelinizde Podcast'leri (yalnızca gönderilerin altında, çünkü $args içindeki menu_position'ı 5'e ayarladık) görmelisiniz. Üzerine gelirseniz, $labels dizisinde belirttiğimiz gibi "Tüm Podcast'ler" ve "Yeni Podcast Ekle" gibi eylemleri görmelisiniz. Herhangi bir özel alan eklemediğimiz için yeni bir podcast eklemeye çalıştığınızda her şey sıradan bir gönderi eklermişsiniz gibi olacaktır.
Fark ettiyseniz, $args dizisine bir sınıflandırma olarak 'podcast'leri ekledik. Bu sınıflandırmayı henüz oluşturmadık, ancak bu sonuçta Podcast Kategorileri, Podcast Şovları vb. gibi özel kategorilerimizi tutacak.
WordPress özel gönderi türleri söz konusu olduğunda, şu anda ihtiyacınız olan tek şey bu. Şimdi soru şu, CPT'nizdeki içeriği nasıl görüntüleyeceğiniz, taksonomilerin nasıl oluşturulacağı (bizim durumumuzda, podcast taksonomisi) ve özel alanların nasıl oluşturulacağı? Endişelenme, tüm bunları adım adım ele alacağız!