WordPress’te Birincil Kategori Belirleme ve Gösterme

April 29, 2020 Bilgi kategorisinde yayınlandı.

WordPress ile kurulmuş sitenizde bazı yazılarınızın birden çok kategoride yer almasını istiyor ama anasayfa ya da arşivlerde yazılar listelenirken kategori bilgisi olarak tek kategorinin gözükmesini istiyor olabilirsiniz. Örneğin bu sitenin anasayfasına baktığınızda yazılara ilişkin resimlerin sol üstünde tek kategori adı göreceksiniz. Halbuki çoğu yazının birden çok kategorisi var. Bu işlemi maalesef WordPress’in mevcut kodları ile yapamıyoruz çünkü WordPress’te birincil kategori(primary category) seçimi bulunmuyor. “Yoast SEO” ve “WP Select Primary Category” eklentileri ise bu özelliği WordPress’e katıyor.

Yoast SEO Eklentisi ile Birincil Kategori Gösterme:

Eğer sitenizde Yoast SEO eklentisini kullanıyorsanız yazılarınızın için birden çok kategori seçtiğinizde “birincil yap” linkini kategori yanında görebilirsiniz(Gutenberg editörde kategori altında seçim alanı mevcut).

Birincil kategoriyi temamızda göstermek için ise aşağıdaki kodu, kategori adının ve linkinin gözükmesini istediğimiz yere yapıştırmamız yeterli:

<?php 
// Birincil kategoriyi ya da ilk kategoriyi göster
$category = get_the_category();
$useCatLink = true;
// Atanmış bir kategori varsa.
if ($category){
	$category_display = '';
	$category_link = '';
	if ( class_exists('WPSEO_Primary_Term') )
	{
		// Yoast fonksiyonu aktifse ve atanmışsa birincil kategoriyi göster,
		$wpseo_primary_term = new WPSEO_Primary_Term( 'category', get_the_id() );
		$wpseo_primary_term = $wpseo_primary_term->get_primary_term();
		$term = get_term( $wpseo_primary_term );
		if (is_wp_error($term)) { 
			// Sorun çıkarsa ilk kategoriyi göster
			$category_display = $category[0]->name;
			$category_link = get_category_link( $category[0]->term_id );
		} else { 
			// Birincil kategori
			$category_display = $term->name;
			$category_link = get_category_link( $term->term_id );
		}
	} 
	else {
		// Temel olarak ilk atanan kategoriyi birincil kategori olarak belirle
		$category_display = $category[0]->name;
		$category_link = get_category_link( $category[0]->term_id );
	}

	// Kategoriyi göster
	if ( !empty($category_display) ){
	    if ( $useCatLink == true && !empty($category_link) ){
		echo '<span class="post-category">';
		echo '<a href="'.$category_link.'">'.htmlspecialchars($category_display).'</a>';
		echo '</span>';
	    } else {
		echo '<span class="post-category">'.htmlspecialchars($category_display).'</span>';
	    }
	}
}
?>

Kod kaynağı: Birincil Kategori Kullanma

WP Select Primary Category Eklentisi ile Birincil Kategori Gösterme:

WP Select Primary Category eklentisi, bir kategoriyi birincil kategori olarak atamanızı sağlıyor. Eklentiyi kurup etkinleştirdikten sonra klasik editör kullanıyorsanız yazının sağ tarafında “Select Primary Category” diye yeni bir alan görebilirsiniz.

WP Select Primary Category Eklentisi ile Birincil Kategori Gösterme

Klasik editör kullanmıyorsanız, yazı sayfasının sağ alt bölümünde (Belge bölümünde) “Select Primary Category” seçeneği aktifleşecektir.

Birincil kategorinizi tema dosyanızda göstermek için ise şu kodu kullanabilirsiniz:

<?php
	$primary_selected_category = get_post_meta( $post->ID, 'select_primary_category', true );
    $category_id = get_cat_ID( $primary_selected_category );
    $category_link = get_category_link( $category_id );
	echo '<a href="'.esc_url( $category_link ).'" title="'.$primary_selected_category.'">'.$primary_selected_category.'</a>';
?>

Yorum Yapabilirsiniz

Yorumunuz yönetici onayından sonra görülebilecektir.