WordPress Özel Yazı Türü Oluşturmak

wordpress özel yazı türü oluşturmak, wordpress yazı eklentisi, wordpress yazı özelleştirme, wordpress ek yazı alanları

Merhabalar. Bu yazımızda wordpress yazılar özelliğini kullanarak yeni ve özel bir yazı türü nasıl oluşturabiliriz buna değinmek istiyorum. Özel yazı türü derken ne demek istediğimi ufacık açıklayayım. Diyelim ki sitenizde bir filmler kategorisi oluşturdunuz ve filmleri standart bir düzende kaydetmek istiyorsunuz. Her film için ortak olan özellikleri bir kayıt formu şeklinde kaydetmek ve kullanıcılara da belli bir düzen içinde göstermek istiyorsunuz.

Daha anlaşılır olması için bir görsel ile açıklayalım :

wordpress özel yazı türü (advanced custom field) oluşturma

wordpress özel yazı türü (advanced custom field) oluşturma

Bu şekilde hem kaydetme işlemini daha kolay bir hale getirebilir, hemde kullanıcı tarafında düzgün bir görünüm oluşturabilirsiniz. Peki bu wordpress özel yazı türlerini nasıl ekleyebiliriz? şimdi buna bakalım.

Öncelikle aşağıdaki kodu temamızın functions.php dosyasına ekliyoruz.

function custom_post_type() {
 
// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Filmler', 'Post Type General Name', 'batuhanozyavru.com.tr.tr' ),
        'singular_name'       => _x( 'Film', 'Post Type Singular Name', 'batuhanozyavru.com.tr.tr' ),
        'menu_name'           => __( 'Filmler', 'batuhanozyavru.com.tr.tr' ),
        'parent_item_colon'   => __( 'Ebeveyn Film', 'batuhanozyavru.com.tr.tr' ),
        'all_items'           => __( 'Tüm Filmler', 'batuhanozyavru.com.tr.tr' ),
        'view_item'           => __( 'Filmi Gör', 'batuhanozyavru.com.tr.tr' ),
        'add_new_item'        => __( 'Yeni Film Ekle', 'batuhanozyavru.com.tr.tr' ),
        'add_new'             => __( 'Yeni Ekle', 'batuhanozyavru.com.tr.tr' ),
        'edit_item'           => __( 'Filmi Düzenle', 'batuhanozyavru.com.tr.tr' ),
        'update_item'         => __( 'Filmi Güncelle', 'batuhanozyavru.com.tr.tr' ),
        'search_items'        => __( 'Film Ara', 'batuhanozyavru.com.tr.tr' ),
        'not_found'           => __( 'Bulunamadı', 'batuhanozyavru.com.tr.tr' ),
        'not_found_in_trash'  => __( 'Silinenler Arasında Bulunamadı', 'batuhanozyavru.com.tr.tr' ),
    );
     
// Set other options for Custom Post Type
     
    $args = array(
        'label'               => __( 'filmler', 'twentythirteen' ),
        'description'         => __( 'Film yazı dizinizi oluşturun', 'batuhanozyavru.com.tr.tr' ),
        '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',
         
        // This is where we add taxonomies to our CPT
        'taxonomies'          => array( 'category' ),
    );
     
    // Registering your Custom Post Type
    register_post_type( 'filmler', $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 );

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', 'filmler'); // don't forget nav_menu_item to allow menus to work!
    $query->set('post_type',$post_type);
    return $query;
    }
}

Kodu eklediğimiz zaman ilk görselde olduğu gibi yeni özel bir yazı alanın oluştuğunu göreceksiniz. Ancak yeni film ekle dediğimizde film özelliklerine ait form henüz yok. Eklediğimiz bu kod ile sadece özel bir yazı alanı oluşturduk. Şimdi gelelim film özelliklerini kaydedeceğimiz özel bir form oluşturup , bu form ile özel yazı alanımızı ilişkilendirmeye..

Ben bu işlem için bir eklenti kullanmayı tercih ediyorum. Eklenti sayesinde özel alanları daha kolay oluşturup ilişkilendirmek mümkün.

Kullanacağımız eklentinin adı, wordpress advanced custom fields (wordpress gelişmiş özel alanlar)

Eklentiyi indirmek için tıklayın:
İndir: Advanced Custom Fields (Gelişmiş Özel Alanlar)

Eklenti ile ilgili detaylı bilgi ve açıklama için tıklayın:
Advanced Custom Fields for WordPress Developers.

Eklenti kurulumu yapmayı bildiğinizi varsayarak devam ediyorum, bilmeyenler ise buradan wordpress eklenti kurulumu hakkında bilgi sahibi olabilirler.

Eklentiyi kurup aktif ettikten sonra Admin Panel menümüzde Özel Alanlar diye bir bölüm oluşacaktır. Bu kısımdan Yeni Ekle diyerek ilgili formumuzu oluşturuyoruz. Ben örnekte verdiğimiz gibi film alanları için oluşturduğum formu sizlerle paylaşacağım. Siz bu örnekten yola çıkarak kendi ihtiyaçlarınıza özel bir form oluşturabilirsiniz.

Alan grubumuza bir isim verdikten sonra +Alan Ekle butonuna tıklıyoruz ve kullanacağımız alanları oluşturuyoruz.

wordpress özel yazı türü (advanced custom field) oluşturma

wordpress özel yazı türü (advanced custom field) oluşturma

Alan Adı kısmına yazacağımız bilgiyi daha sonra frontend kısımda kullanıcılara veri gösterirken kullanacağız. Bu bilgi bize lazım olacağından sadece ve anlaşılır terimler seçmenizi öneririm.

Alan Tipi kısmından ise veriyi ne şekilde kaydedeceğimizi seçiyoruz. Metin, checkbox (seçim kutusu) veya hangisini isterseniz. Diğer kısımlarıda kendinize göre özelleştirebilirsiniz.

Tüm alanlarımızı oluşturup formumuzu hazır hale getirdikten sonra görüntü şu şekilde olacaktır:

wordpress özel yazı türü (advanced custom field) oluşturma

wordpress özel yazı türü (advanced custom field) oluşturma

Formumuz hazır hale geldiğine göre şimdi yazının başında oluşturduğumuz filmler adındaki özel yazı türümüz ile ilişkilendirebiliriz. Kurallar kısmında bulunan kural grupları ile bu işlemi halledebiliriz. Kural grubu olarak Yazı Tipi, kural olarak eşitse ve karşılık olarak ise filmler ‘i seçiyoruz. Biz özel bir yazı tipi oluşturduğumuz için bu işlemi yaptık. Ancak eklentinin farklı bölümler ile ilişkilendirilmesi de mümkün. Örneğin sayfalar, kategoriler veya taksonomiler ile ilişkilendirerek farklı amaçlar içinde kullanabilirsiniz.

wordpress özel yazı türü (advanced custom field) oluşturma

wordpress özel yazı türü (advanced custom field) oluşturma

Artık Filmler adında bir kayıt alanımız bulunmakta, ve filmler için oluşturduğumuz özel alanlarımız kullanıma hazır duruma geldi. Şimdi ise bu bilgileri kullanıcılara nasıl göstereceğiz buna bakalım.

Temamızın single.php dosyasını açıyoruz. Bunun sebebi oluşturduğumuz firmalar kayıt biçiminin yazılardan miras alıyor olması. Özel alanlar formumuzu da firmalarla ilişkilendirdiğimiz için haliyle gösterilecek sayfa da single.php sayfası olacak.

single.php wordpress’in kendi özelliği olan yazılar kısmına eklediğimiz yazıları da göstereceği için bilgileri if else ile kontrol ediyoruz. eğer boş ise göstermesin ki yazılar içinde anlamsız görüntüler oluşmasın.

<?php if( get_field('film_adi') != null ) : ?>
        <div class="film-detay-satir">
       <span class="firma-detay"><?php the_field('film_adi') ?></span>
  </div>
<?php endif; ?>

Bu kodu single.php dosyasında görünmesini istediğimiz yere ekliyoruz. the_field(‘film_adi’) bu kısıma dikkat ederseniz, özel alan oluştururken Alan Adı kısmında verdiğimiz değer olduğunu anlayacaksınız. Diğer tüm alanları da bu şekilde alan adı bilgisini değiştirerek ekliyoruz. ilk satırda bulunan if içinde de aynı değer ile kontrol ettiğimize dikkatinizi çekmek istiyorum.

<?php if( get_field('tur') != null ) : ?>
        <div class="film-detay-satir">
       <span class="firma-detay"><?php the_field('tur') ?></span>
  </div>
<?php endif; ?>
<?php if( get_field('sure') != null ) : ?>
        <div class="film-detay-satir">
       <span class="firma-detay"><?php the_field('sure') ?></span>
  </div>
<?php endif; ?>
<?php if( get_field('yonetmen') != null ) : ?>
        <div class="film-detay-satir">
       <span class="firma-detay"><?php the_field('yonetmen') ?></span>
  </div>
<?php endif; ?>
<?php if( get_field('oyuncular') != null ) : ?>
        <div class="film-detay-satir">
       <span class="firma-detay"><?php the_field('oyuncular') ?></span>
  </div>
<?php endif; ?>

Böylelikle bu özel alanları kullanıcılara göstermiş olduk.

wordpress özel yazı türü (advanced custom field) oluşturma

wordpress özel yazı türü (advanced custom field) oluşturma

Umarım faydalı bir yazı olmuştur. Yeniden görüşmek üzere hoşçakalın.

, , , , , ,

İlgili Yazılar

WordPress Kurulum Sonrası Yapılması Gerekenler

WordPress uzmanından, wordpress başlangıç kılavuzu yazı dizimizin bu bölümünde wordpress kurulumunu tamamladıktan sonra ilk iş neler yapmamız gerektiğinden bahsedeceğiz. Yazımızın devamında wordpress url yapısı ayarlama, tema yükleme, gereksiz tema ve…
Devamını Oku
wordpress yazı sürümlerini kapatmak ve silmek

WordPress Yazı Sürümlerini Kapatmak ve Silmek

WordPress destek serimizin bu bölümünde, wordpress yazı sürümleri nedir, wordpress yazı sürümleri nasıl kapatılır, wordpress yazı sürümleri nasıl silinir konularını ele alacağız. WordPress’in 2.6 versiyonundan sonra kullanıcılar tarafından pek de beğenilmeyen bir özellik…
Devamını Oku
wordpress tema türkçeleştirme

WordPress Tema Türkçeleştirme

WordPress destek serimizin bu bölümünde wordpress tema nasıl türkçeleştirilir, wordpress tema türkçeleştirme, wordpress türkçe dil ekleme konusuna değineceğiz. WordPress sitenize bir tema kurduğunuzda temanın gerek admin panel, gerek ise site tarafında bir çok bilgisinin…
Devamını Oku
wordpress kurulum tüm detaylar resimli anlatım

WordPress Kurulumu Nasıl Yapılır?

Merhabalar, temel wordpress eğitimlerine devam ediyoruz. Bu yazımızda, wordpress nasıl kurulur tüm yöntemleri ile inceleyeceğiz. Bu yazının sonunda kendi wordpress sitenizi, hostinginize kurmayı ve çalıştırmayı öğrenmiş olacaksınız. WordPress kurulumunu wordpress.org…
Devamını Oku

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Fill out this field
Fill out this field
Lütfen geçerli bir e-posta adresi girin.
You need to agree with the terms to proceed

Menü