WordPress WordPress, WordPress Özel Yazı Biçimi ve Taxonomy – Custom Post Type ve Taxonomy

Vaktiyle kısaca nasıl özel yazı biçimi eklenir konusuna değindim. Buradan erişebilirsiniz.

Bu yazıda hem özel yazı biçimi (custom post type) hemde taxonomy konularına değineceğim bunların arasındaki ilişkisel yapıyı biraz anlatacağım.

Bir yazı biçimi eklemek için temanızdaki functions.php dosyanızda aşağıdaki tanımlamayı yapmanız gerekmektedir. (Site olarak bir müzik sitesi yaptığımı düşünün. Örnek buna yakındır. Bağlantı kurabilirsiniz.)

add_action( 'init', 'yazi_bicimi_sanatci' );
function yazi_bicimi_sanatci() {
	register_post_type( 'sanatci',
		array(
			'labels' => array(
				'name' => __( 'Sanatçılar' ),
				'singular_name' => __( 'Sanatçı' )
			),
		'public' => true,
		'has_archive' => true,
		'publicly_queryable' => true,
		'show_ui' => true, 
		'query_var' => true,
		'rewrite' => true,
		'capability_type' => 'post',
		'hierarchical' => false,
		'menu_position' => 5,
		'supports' => array('title','editor','author','thumbnail','excerpt','comments','custom-fields'), 
		// destekleyeceği özellikler

		'has_archive' => 'sanatci'
		)
	);
}

Şimdi bu kod ile birlikte panelinizde Sanatçılar diye bir bölüm çıkacaktır. Elbette bir sanatçının şarkıları da olur o yazı tibini de ekleyelim.

add_action( 'init', 'yazi_bicimi_sarkilar' );
function yazi_bicimi_sarkilar() {
	register_post_type( 'sarkilar',
		array(
			'labels' => array(
				'name' => __( 'Şarkılar' ),
				'singular_name' => __( 'Şarkı' )
			),
		'public' => true,
		'has_archive' => true,
		'publicly_queryable' => true,
		'show_ui' => true, 
		'query_var' => true,
		'rewrite' => true,
		'capability_type' => 'post',
		'hierarchical' => false,
		'menu_position' => 5,
		'supports' => array('title','editor','author','thumbnail','excerpt','comments','custom-fields'),
		'has_archive' => 'sarkilar'
		)
	);
}

Bununla birlikte panelinizde Şarkılar diye bir bölüm daha görünecektir.

Diyeceksiniz ki hangi şarkının hangi sanatçıya ait olduğunu nasıl bileceğiz.

Bunun için taxonomy kullanabilir. İlişki kurmak istediğiniz özel yazıların hepsine taxonomy ekleyeceğiz.

Aşağıdaki kod yapısını yine functions.php ye eklediğinizde panelinizde çıkan yazı tiplerine ‘Sanatçı Adı’ diye etiket ekleyecektir.
Kodu incelerseniz Sanatçı ve Şarkılar yazı tiplerine nasıl bağlandığını anlarsınız.

function sanatci_init() {
	// create a new taxonomy
	register_taxonomy(
		'sanatci',
		array('sanatci','sarkilar'), // Bağlanacak özel yazı tiplerinin isimleri
		array(
			'label' => __( 'Sanatçı Adı' ),
			'rewrite' => array( 'slug' => 'sanatci' )
		)
	);
}
add_action( 'init', 'sanatci_init' );

İçerik gösterimleri için temanızda özel dosyalar oluşturmanız gerekir.

Eklenen tüm yazıları göstermek için archive-yazitipi.php dosyanızın olması gerekir.
Tekil gösterimler için single-yazitipi.php dosyalarınızın olması gerekir. Bu her yazı tipi için uygulanması gerekir.

İçeriklerinizi anasayfa veya iç sayfalarda ilişkisel çekmek için wordpress in loop- döngü yapısını kullanabilirsiniz.

 'videolar', // yazi tipi
	'sanatci'    => 'asik-veysel' // taxonomy adı
);
query_posts( $args );
if (have_posts()) :  while (have_posts()) : the_post(); 
?>








Bu query_posts sayesinde de temanızın-sitenizin heryerinde istediğiniz sanatçının istediğiniz şarkısını çekebilirsiniz.

Not: Bir custom post – özel yazı biçimi eklendiğinde eğer permalink ayarınız önceden yapılmışsa archive-yazicibimi.php veya single-yazibicimi.php olmasına rağmen eklenen içeriği göremeyebilirsiniz. Panelde ‘Kalıcı Kağlantılar-Permalink’ değişiklik yapmanda güncellemeniz yeterlidir.

Yorumlar