WordPress Custom Post Type Kullanımı

WordPress 3.0 ile kullanıcıya açılan custom post type ve taxonomy özelliklerini birçok tema kullanmaya başladı. WordPress’in imkansızları ortadan kaldıran bu atağı ile birlikte kendi scriptini kullanan birçok sistem sürekli güncel ve güvenli bir yazılım olan WordPress‘i tercih etmeye başladı.

Ben bugünkü yazımda Custom Post Type kullanımı hakkında bilgi vermek istedim. Öncelikle Custom Post Type Nedir? buna değinelim. Yazılar, Sayfalar gibi sitenize özel bir yazı tipi belirleyebilirsiniz.Örneğin, kitap siteniz var kitaplar isminde bir yazı tipi belirleyebilir ve kitap özetlerinizi bu yazı tipine eklersiniz.

Tema sayfanızdan gerekli değişiklikler yaparak sitenizin kitaplar ismindeki yazı tipini farklı bir yazılım gibi gösterebilirsiniz. Gelelim Custom Post Type kullanımına. Bunu kullanmak için functions.php dosyanızda değişiklik yapacaksınız. Eğer özel bir tema kullanıyorsanız ve functions.php dosyanızın düzenini bozmak istemiyorsanız tema dizinine posttype.php dosyası oluşturun ve Bomsuz olarak işaretleyip php kodlarını açın.

<?php
function yenibirsey_kitaplar(){
    $labels = array(
        'name'               => 'Kitaplar',
        'singular_name'      => 'Kitap',
        'add_new'            => 'Yeni Ekle',
        'add_new_item'       => 'Yeni Kitap Ekle',
        'edit_item'          => 'Kitap Düzenle',
        'new_item'           => 'Yeni Kitap',
        'all_items'          => 'Bütün Kitaplar',
        'view_item'          => 'Kitabı Görüntüle',
        'search_items'       => 'Kitapları Ara',
        'not_found'          => 'Kitap Bulunamadı',
        'not_found_in_trash' => 'Çöp Kutusunda Kitap Yok',
        'parent_item_colon'  => '',
        'menu_name'          => 'Kitaplar'
    );

    register_post_type(
        'kitap',
        array (
            'labels'             => $labels,
            'public'             => true,
            'publicly_queryable' => true,
            'show_ui'            => true,
            'show_in_menu'       => true,
            'query_var'          => true,
            'rewrite'            => array( 'slug' => 'kitap' ),
            'capability_type'    => 'post',
            'has_archive'        => true,
            'hierarchical'       => false,
            'menu_position'      => null,
            'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
        )
    );
}

add_action('init', 'yenibirsey_kitaplar');
?>

Yukarıdaki kodları posttype.php isimli dosyaya kaydedin ve ardından functions.php dosyanızı açarak

require_once("posttype.php");

satırını <?php tagından sonra ekleyin. İşlem tamamdır. Admin panelinde Sol kısımda artık Kitaplar isminde yeni bir bölüm oluşacak.

2. Bu Yazı Tipine Özel Etiket Sistemi Oluşturmak (Taxonomy)

Yazılar kısmında kategoriler ve etiketler isminde 2 adet taxonomy var arkadaşlar. eğer bu taxonomileri yeni oluşturduğumuz kitaplar isminde yazı tipinde kullanmak isterseniz

<?php
function yenibirsey_kitaplar(){
    $labels = array(
        'name'               => 'Kitaplar',
        'singular_name'      => 'Kitap',
        'add_new'            => 'Yeni Ekle',
        'add_new_item'       => 'Yeni Kitap Ekle',
        'edit_item'          => 'Kitap Düzenle',
        'new_item'           => 'Yeni Kitap',
        'all_items'          => 'Bütün Kitaplar',
        'view_item'          => 'Kitabı Görüntüle',
        'search_items'       => 'Kitapları Ara',
        'not_found'          => 'Kitap Bulunamadı',
        'not_found_in_trash' => 'Çöp Kutusunda Kitap Yok',
        'parent_item_colon'  => '',
        'menu_name'          => 'Kitaplar'
    );

    register_post_type(
        'kitap',
        array (
            'labels'             => $labels,
            'public'             => true,
            'publicly_queryable' => true,
            'show_ui'            => true,
            'show_in_menu'       => true,
            'query_var'          => true,
            'rewrite'            => array( 'slug' => 'kitap' ),
            'capability_type'    => 'post',
            'has_archive'        => true,
            'hierarchical'       => false,
            'menu_position'      => null,
             'taxonomies'          => array( 'category','tag' ),
            'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
        )
    );
}

add_action('init', 'yenibirsey_kitaplar');
?>

en üstteki kodu bu kod ile değiştirin. Bu koda eklediğimiz;

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

kod öbeği kategori ve etiketleri bu post tipinde de kullanmanıza imkan sağlayacak. Ama biz bunu boşverip kitaplar yazı tipine özgü tür,firma gibi yeni etiket sistemi oluşturabiliriz. WordPress bu imkanı bize tanımış. Biz tür, firma, yazar isminde 3 yeni taxonomi oluşturalım. Bu taxonomilerin firma ve yazar isimlerini etiket sistemi gibi, tür taxonomisini ise kategori gibi kullanalım.

add_action( 'init', 'yenibirsey_taxonomiler', 0 );
function yenibirsey_taxonomiler() {
 register_taxonomy( 'tur', 'kitaplar', array( 'hierarchical' => true, 'label' => 'Tür', 'query_var' => true, 'rewrite' => true ) );
 register_taxonomy( 'yazar', 'kitaplar', array( 'hierarchical' => false, 'label' => 'Yazar', 'query_var' => true, 'rewrite' => true ) );
 register_taxonomy( 'firma', 'kitaplar', array( 'hierarchical' => false, 'label' => 'Firma', 'query_var' => true, 'rewrite' => true ) );
}

bu kodlarıda posttype.php dosyamızın içerisine ?> tagından hemen önce ekleyelim ve artık Kitaplar isimli sol admin bölümünden hemen sonra Tür, Firma ve Yazar isminde yeni oluşturduğumuz etiketleri görebiliriz. Kitap ekleyeceğinizde yazı editöründe sağ kısımda bu taxonomilerin kutucuklarını göreceksiniz.

Oluşturduğumuz bu taxonomileri temada istediğimiz yerde gösterebiliriz. Bunun için ise temanızda göstermek istediğiniz alana,

<?php the_terms( $post->ID, 'tur', 'Kitap Türleri: ', ', ', ' ' ); ?>

şeklinde ekleyebilirsiniz. Bu taxonomileri Sidebar’da göstermek isterseniz bunu ufak bir eklenti ile gerçekleştirebilirsiniz. List Custom Taxonomy Widget eklentisini yüklerseniz Bileşenler bölümünden dilediğiniz Taxonomiyi Sidebar’da listeleyebilirsiniz. Kategoriler gibi kaç yazı olduğunu hiyerarşi eşliğinde ziyaretçilerinize gösterebilirsiniz.

Hakkında Tosahan

Üniversiteyi yeni bitirmiş, yeni bir şeyler bulma umuduyla internet ortamında kendini bulan, Wordpress aşığı, birkaç ay sonra askere gidecek kişiyim. Bazen 2 bazense 3 bilinmeyenli bir denklem olmayı sürdürsem de şu sıralar çok çabuk kırılan bir MSN şifresiyim :)

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*