WordPress, varsayılan olarak yazılar ve sayfalar gibi bazı içerik türleri sunar. Ancak, bir web sitesinin ihtiyaçları genellikle bu temel içerik türlerinin ötesine geçer. Bu durumda, özel yazı tipleri (custom post types) kullanılarak yeni içerik türleri oluşturulabilir. Özel yazı tipleri, WordPress’in esnekliğini artırır ve kullanıcıların içeriklerini daha organize ve fonksiyonel bir şekilde yönetmelerine olanak tanır. İşte özel yazı tiplerinin nasıl oluşturulacağına dair adım adım bir rehber:
1. Temel Fonksiyonun Oluşturulması
Özel yazı tipleri oluşturmanın ilk adımı, `register_post_type()` fonksiyonunu kullanmaktır. Bu fonksiyon, tema veya eklenti dosyalarına eklenir ve WordPress’in içerik türü olarak tanıması için gerekli bilgileri sağlar.
“`php
function create_post_type() {
register_post_type(‘book’,
array(
‘labels’ => array(
‘name’ => __( ‘Books’ ),
‘singular_name’ => __( ‘Book’ )
),
‘public’ => true,
‘has_archive’ => true,
‘supports’ => array(‘title’, ‘editor’, ‘author’, ‘thumbnail’, ‘excerpt’, ‘comments’)
)
);
}
add_action(‘init’, ‘create_post_type’);
“`
Bu kod, ‘book’ adında yeni bir yazı türü oluşturur. ‘labels’ anahtarı, yönetim panelinde görünen etiketleri belirler. ‘public’ anahtarı, yazı türünün genel olarak görünür olup olmayacağını belirler ve ‘has_archive’ anahtarı, bu yazı türü için bir arşiv sayfası oluşturulup oluşturulmayacağını belirler.
2. Etiketlerin ve Özelliklerin Ayarlanması
Yazı türünün etiketleri ve özellikleri, kullanıcı deneyimini ve yazı türünün işlevselliğini doğrudan etkiler. İşte bazı önemli ayarlar:
– labels: İçerik türü için kullanılacak etiketleri tanımlar. Örneğin, ‘add_new_item’ yeni bir kitap ekleme bağlantısının metnini belirler.
– public: Bu yazı türünün kamuya açık olup olmayacağını belirler. `true` olarak ayarlanırsa, içerik genel olarak erişilebilir olur.
– has_archive: Bir arşiv sayfası oluşturulup oluşturulmayacağını belirler. Bu, örneğin, tüm kitapların listelenebileceği bir sayfa anlamına gelir.
– supports: Bu yazı türünün hangi özellikleri destekleyeceğini belirler. Örneğin, ‘thumbnail’ desteği, yazı türüne öne çıkan görsel ekleme imkanı sunar.
3. Veritabanı Tablosu ve URL Yapısı
WordPress, yeni bir yazı türü kaydedildiğinde otomatik olarak veritabanında gerekli tabloları oluşturur ve URL yapılarını yönetir. Ancak, bazen özel URL yapıları veya veritabanı düzenlemeleri gerekebilir:
– rewrite: Bu anahtar, yazı türünün URL yapısını özelleştirmenize izin verir. Örneğin, `rewrite` => array(‘slug’ => ‘books’), kullanarak yazı türünün URL’sini `/books/%postname%/` şeklinde yapabilirsiniz.
– query_var: Bu, yazı türü için sorgu değişkenini belirler. Bu sayede URL’de özel yazı türü için sorgu parametreleri kullanılabilir.
4. Yönetim Paneli Entegrasyonu
Özel yazı türleri yönetim paneline entegre edildiğinde, kullanıcılar bu yazı türleri için içerik oluşturabilir, düzenleyebilir ve silebilir. Ayrıca, bu yazı türleri için özel meta kutuları veya taksonomiler (kategoriler, etiketler) eklemek mümkündür:
“`php
function add_custom_taxonomies() {
register_taxonomy(
‘genre’,
‘book’,
array(
‘label’ => __( ‘Genre’ ),
‘rewrite’ => array( ‘slug’ => ‘genre’ ),
‘hierarchical’ => true
)
);
}
add_action( ‘init’, ‘add_custom_taxonomies’, 0 );
“`
Bu kod, ‘book’ yazı türü için ‘genre’ adında bir taksonomi oluşturur. Bu, kullanıcıların kitapları türlerine göre sınıflandırmasına olanak tanır.
5. Özel Kullanıcı Rolleri ve Yetkiler
Özel yazı türleri için özel kullanıcı roller ve yetkiler tanımlamak, içerik yönetiminin daha güvenli ve kontrol edilebilir olmasını sağlar. `add_cap()` ve `remove_cap()` fonksiyonları kullanılarak belirli roller için yetkiler eklenebilir veya kaldırılabilir.
“`php
$role = get_role( ‘editor’ );
$role->add_cap( ‘edit_books’ );
“`
Bu, ‘editor’ rolüne ‘book’ yazı türü üzerinde düzenleme yetkisi verir.
6. Özel Yazı Tipleri ile İçerik Görüntüleme
Özel yazı türleri oluşturulduktan sonra, bu içeriklerin nasıl görüntüleneceği de önemlidir. WordPress, `WP_Query` sınıfını kullanarak özel yazı türlerini sorgulayıp, şablon dosyalarında görüntüleyebilir:
“`php
$args = array(
‘post_type’ => ‘book’,
‘posts_per_page’ => 5
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
// İçerik görüntüleme kodu
endwhile;
endif;
wp_reset_postdata();
“`
Bu kod, ‘book’ yazı türünden 5 adet son yazıyı sorgular ve görüntüler.
WordPress özel yazı tipleri, içerik yönetimini daha esnek ve özelleştirilebilir hale getirir. Bu rehber, özel yazı tiplerinin nasıl oluşturulacağı, özelliklerinin nasıl ayarlanacağı ve bu yazı türlerinin nasıl kullanılacağı hakkında temel bilgiler sunar.