WordPress’te Özel Yazı Tipleri (Custom Post Type) Nasıl Oluşturulur?

WordPress’te Özel Yazı Tipleri (Custom Post Type) Nasıl Oluşturulur?

Genellikle insanlar yanlışlıkla WordPress’i sadece bir blog platformu olarak sınıflandırırlar. Geçtiğimiz yıllarda, WordPress sağlam bir içerik yönetim sistemine dönüşmüştür. Varsayılan olarak WordPress, yazı ve sayfalarla birlikte ana içerik türleri olarak gelir. Ancak, istediğiniz kadar özel içerik türü oluşturabilirsiniz ve bu özel içerik türleri Özel Posta Türleri olarak adlandırılır . Bu yazıda size WordPress’te nasıl özel yazı tipleri yaratacağınızı göstereceğiz. Ayrıca bunları bir profesyonel gibi nasıl kullanacağınızı göstereceğiz.

WordPress’te Özel Yazı Tipi Nedir?

Özel gönderi türleri, yazılar ve sayfalar gibi içerik türleridir. WordPress basit bir blog platformundan sağlam bir CMS’ye geliştiğinden, post terimi ona yapışmıştır. Bununla birlikte, bir gönderi türü herhangi bir içerik olabilir. Varsayılan olarak, WordPress bu yazı türleriyle birlikte gelir:post, page, attachment, revision, navmenu

Kendi özel gönderi türlerinizi oluşturabilir ve istediğiniz şekilde onları arayabilirsiniz. Örneğin, bir film incelemesi web sitesi işletiyorsanız, muhtemelen bir film incelemeleri yayın türü oluşturmak istersiniz. Bu gönderi türü farklı özel alanlara ve hatta kendi özel kategori yapısına sahip olabilir. Diğer gönderi türleri örnekleri: Portföy, Görüşler, Ürünler, vb.

Pluginsiz Özel Bir Yazı Türü Oluşturma

Gerekli kodu temanızın functions.php dosyasına veya siteye özgü bir eklentiye ekleyerek istediğiniz kodu ekleyerek manuel olarak oluşturabilirsiniz.

function posttipi_yarat() {
 
    register_post_type( 'movies',
        array(
            'labels' => array(
                'name' => __( 'Filmler' ),
                'singular_name' => __( 'Film' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'movies'),
        )
    );
}
add_action( 'init', 'posttipi_yarat' );

Bu kodun yaptığı, ‘movies’bir argüman dizisine sahip bir yazı tipini kaydetmesidir . Bu argümanlar özel yazı tipimizin seçenekleridir. Bu dizinin iki bölümü vardır, ilk bölümün kendisi bir dizi olan etiketlerdir. İkinci bölüm, kullanıcı görünürlüğü, arşiv ve bu yazı türü için URL’lerde kullanılacak kısa ad gibi diğer argümanları içerir.

Şimdi özel yazı türünüze daha fazla seçenek ekleyen ayrıntılı bir kod parçasına göz atalım.

function ozel_yazi_tipi() {
//Görünecek isimler
     $labels = array(
        'name'                => 'Filmler',
        'singular_name'       => 'Film',
        'menu_name'           => 'Filmler'
    );
     //ana seçenekler
    $args = array(
        'label'               => 'movies',
        'description'         => 'Film İncelemeleri',
        'labels'              => $labels,
        //Yazı düzenle sayfasında desteklenecek özellikler
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        'taxonomies'          => array( 'genres' ),//Kategorize etme seçeneği
        'hierarchical'        => false,
        'public'              => true,//Kullanıcı görünürlüğü
        'show_ui'             => true,
        'show_in_menu'        => true,//Menude göster seçeneği
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,//Arşiv olarak listeleme seçeneği
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'page'//Yönetici erişebilirlik seçeneği
    );
     
    // Yukardaki argümanlara sahip post tipi yarat
    register_post_type( 'movies', $args );
 
}
add_action( 'init', 'ozel_yazi_tipi', 0 );

Gördüğünüz gibi, koduyla birlikte özel yazı türüne birçok seçenek ekledik. Revizyon desteği, öne çıkan görüntü, özel alanlar vb. Gibi daha fazla özellik katacaktır.

Özel yazı tipini içerik sayfasında (Archive, Single) Görünteleme

Özel yazı türünüz için arşiv sayfasının görünümünü beğenmezseniz, özel yazı türü arşivi için özel şablon kullanabilirsiniz . Bunu yapmak için tek yapmanız gereken, tema dizininizde yeni bir dosya oluşturmak ve adlandırmak archive-movies.php. Filmleri özel gönderi türünüzün adıyla değiştirin.

Başlamak için, temanızın archive.phpdosyasının içeriğini archive-movies.phpşablona kopyalayabilir ve ardından gereksinimlerinizi karşılayacak şekilde değiştirmeye başlayabilirsiniz. Artık özel yazı türünüzün arşiv sayfasına erişildiğinde, bu şablon görüntülemek için kullanılır.

Benzer şekilde, yazınızın tüm metninin yayınlandığı sayfa için özel bir şablon da oluşturabilirsiniz. Bunu yapmak single-movies.php için tema dizininizde oluşturmanız gerekir . Filmleri özel yazı türünüzün adıyla değiştirmeyi unutmayın.

Özel Yazı Türlerini Ön Sayfada Görüntüleme

Özel yayın türlerini kullanmanın bir avantajı, özel içerik türlerinizi normal yayınlarınızdan uzak tutmasıdır. Ancak, normal postalarınız arasında görüntülenmelerini istiyorsanız, bu kodu temanızın functions.php dosyasına veya siteye özgü bir eklentiye ekleyerek yapabilirsiniz.

add_action( 'pre_get_posts', 'ana_sorguya_post_tipi_ekle' );
 
function ana_sorguya_post_tipi_ekle( $query ) {
    if ( is_home() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'movies' ) );
    return $query;
}

Özel Gönderi Türlerini Sorgulama

Veritabanını sorgulayarak, özel bir yazı tipinden öğeleri alabilirsiniz.

<?php 
$args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args ); 
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p><?php _e( 'Üzgünüz Yazı Bulunamadı' ); ?></p>
<?php endif; ?>

Bu kodda, önce yeni WP_Query sınıfımızın argümanlarındaki sayfa tipini ve sayfa başına yazılacak adeti tanımladık. Bundan sonra sorgunuzu çalıştırdık, gönderileri aldık ve bunları döngünün içinde gösterdik.

Yorum Yap
0 Yorum yapan