WordPress ve Custom Post Type / Taxonomy Oluşturma

YouTube'ta Takip Et →

WordPress, bir blog içerik yönetim sisteminden öte özelliklere sahip. WordPress ile portfolyo siteleri hazırlayabilir, katalog siteleri ile ürettiğiniz ürünleri gösterebilir, film inceleme siteleri yapabilir ve bunlar gibi aklınıza gelebilecek her türde site için düzenleme yapabilirsiniz. WordPress içerisinde varsayılan olarak blog yazıları ekleyebileceğiniz bir alan vardır, fakat az önce saydığımız özelliklerde içerikler oluşturmak için WordPress’in Custom Post Type olarak bilinen özel yazı türleri üzerinde çalışmamız gerekiyor.

Custom Post Type (Özel İçerik Tipi) Eklentisiz Nasıl Oluşturulur?

Custom Post Type oluşturmak için functions.php’den destek alacağız. Functions.php dosyasına ekleyeceğimiz kodlar, yönetim panelinde yeni bir içerik ekleme alanı oluşturacak bize.

function portfolyo_posttype() {
	$args = array(
		'labels' => array(
        'name' => 'Portfolyo',
        'singular_name' => 'Portfolyo',
     ),
		'hierarchical' => false,
		'public' => true,
		'has_archive' => true,
		'menu_icon' => 'dashicons-chart-pie',
		'supports' => array( 'title', 'editor', 'thumbnail'),
		'rewrite' => array('slug' => 'portfolyo'),
	);

	register_post_type( 'portfolyo',$args);
}

add_action( 'init', 'portfolyo_posttype' )

WordPress’te her ne içerik oluşturursak oluşturalım, o içerikleri mutlaka kategorilendiririz. Tıpkı, WordPress yazılarındaki kategorilendirme sistemi gibi kendi oluşturduğumuz post type’lara da kategori sistemi uygulayabiliyoruz.

function portfolyo_taxonomy() {
	$args = array(
		'labels' => array(
        'name' => 'Kategori',
        'singular_name' => 'Kategoriler',
     ),
		'hierarchical' => true,
		'public' => true,
	);
	register_taxonomy( 'portfolyo',array('portfolyo'),$args);
}
add_action('init', 'portfolyo_taxonomy');

WordPress’te Özel Yazı Türü Nasıl Görüntülenir?

Custom Post Type üzerinden oluşturduğunuz içerik türlerine girdiğiniz içerikleri sayfalarda açmak istediğinizde varsayılan olarak single.php’yi kullanır. single-[post-type-id].php adında yeni bir dosya oluşturursanız, WordPress’in hiyerarşik şablon yapısına göre, bundan sonra bu dosya üzerinden görünmeye devam eder.

<h1><?php the_title(); ?></h1>

<?php if(has_post_thumbnail()):?>
      <img src="<?php the_post_thumbnail_url();?>">
<?php endif; ?>
    
<?php if (have_posts()) : while (have_posts()) : the_post() ?>
      <?php the_content(); ?>
<?php endwhile; endif; ?>

Aynı şekilde portfolyo listesi için oluşturmanız gereken archive.php dosyası için de archive-[post-type-id].php ismi ile yeni bir dosya oluşturup archive.php’ye benzer kodlarla bu sayfayı kodlarsanız arşiv sayfanızı da yapmış olursunuz.

Kategorilerin listelendiği sayfa için de ayrı bir php dosyası daha oluşturmak gerekiyor ki varsayılan olarak archive.php dosyasındaki tasarım yerine kategoriye özel sayfa tasarımına sahip olalım. Kategoriler için özel sayfa hazırlamak için de taxonomy-[id].php şeklinde bir dosya ismi vermemiz gerekiyor. Videodaki örneğe göre bu dosyanın ismi taxonomy-portfolyo-list.php. Kategorilerin sayfaları için de aşağıdaki şekilde bir kod kullanmamız gerekiyor. Bu kodları functions.php’de kullanabilirsiniz.

<h1>function portfolyo_taxonomy() {

	register_taxonomy(
		'portfolyo-list',
		'portfolyo',
		array(
			'labels' => array(
				'name' => 'Kategoriler',
				'singular_name' => 'Kategori',
			 ), 
			'rewrite' => array( 'slug' => 'portfolyo-list', 'with_front' => TRUE ),
			'public' => true,
			'hierarchical' => true,
		)
	);
}
add_action('init', 'portfolyo_taxonomy');

Oluşturduğumuz custom post type içeriklerinin detay sayfalarından kategori sayfalarına erişmek için de aşağıdaki kodu kullanabiliriz. Ben bu şekilde çözdüm, kendinize göre düzenleyebilirsiniz. Hatta farklı bir fikriniz varsa yorum kısmında belirtebilirsiniz.

<?php $category = get_the_terms($post->ID, 'portfolyo-list');
    foreach ($category as $cat) {
        echo '
            <a href="/portfolyo-list/' . $cat->slug . '"> ' . $cat->name . ' </a>  ';
    }
?>

Custom Post Type UI Eklentisi ile Özel İçerik Türü Oluşturmak

Eklentisiz yapılabildiği gibi alternatif olarak eklenti ile Custom Post Type yapmak da mümkün. Custom Post Type eklentisinin ismi Custom Post Type UI. Eklentiyi yüklediğinizde sol tarafta CPT UI sekmesi görürsünüz. Bu eklenti aracılığıyla yeni özel yazı türü oluşturabilirsiniz.