Deneyimlerimize göre, WordPress yazılarınıza çok fazla kategori eklerseniz, işler biraz kalabalıklaşmaya başlayabilir. Birden fazla kategori, özellikle de üst ve alt kategoriler, düzenlerinizi karıştırabilir ve okuyucuların aradıklarını bulmalarını zorlaştırabilir.
Her gönderi için yalnızca alt kategoriyi görüntülemek daha temiz olmaz mıydı?
Bu kılavuz, gönderi döngünüzde yalnızca alt kategorileri görüntülemek için WordPress temanızın dosyasını nasıl düzenleyeceğinizi gösterecek ve blogunuza daha akıcı ve kullanıcı dostu bir his verecektir.

WordPress Gönderi Döngünüzde Yalnızca Alt Kategoriyi Neden Görüntüleyin?
Bir WordPress blogu oluştururken, içeriğinizi kategoriler ve etiketler kullanarak düzenleyebilirsiniz.
Okuyucuların ilginç içerikleri daha hızlı bulmalarına yardımcı olmak için, alt kategoriler (veya alt kategoriler) oluşturmayı bile düşünebilirsiniz.
Örneğin, bir seyahat blogunuz varsa, 'Destinasyonlar' gibi bir kategori oluşturabilir ve ardından 'Avrupa', 'Amerika' ve 'Avustralya' gibi alt kategorilere sahip olabilirsiniz.
Varsayılan olarak, çoğu WordPress teması bir gönderi için tüm üst ve alt kategorileri gösterir.

Ancak, çok sayıda kategori kullanırsanız, blog sayfalarınız karmaşık ve dağınık görünmeye başlayabilir. Ayrıca okuyucuların ilgilendikleri kategoriyi bulmalarını zorlaştırabilir.
Bu nedenle, bir gönderinin genel üst kategorilerini gizlemek ve yalnızca alt kategorileri göstermek isteyebilirsiniz. Bununla birlikte, WordPress gönderi döngüsünde yalnızca alt kategorileri nasıl görüntüleyeceğinizi görelim.
Bir WordPress Tema Dosyasını Düzenlemeden Önce: Hatırlanması Gereken Önemli Noktalar
Bu kılavuz, kodlama ve WordPress tema dosyalarını düzenleme konusunda rahat olan kişilere yöneliktir. İşte eğiticiden önce yapmanız gereken bazı şeyler:
- İlk olarak, bu dosyalara erişebilmek için web sitenizi FTP ile bağlamanız veya web barındırıcınızın dosya yöneticisini açmanız gerekir.
- Yeni başlayan biriyseniz, önceden hazırlık yapmak için web'den WordPress'e kod parçacıkları yapıştırma hakkında başlangıç kılavuzumuza bakabilirsiniz.
- Bu yöntemi izlemek için yedekleme oluşturmanızı veya bir hazırlık sitesi kullanmanızı öneririz. Bu şekilde, bir şeyler ters giderse canlı siteniz etkilenmez.
Son olarak, bu kılavuz yalnızca klasik WordPress temaları için geçerlidir. Blok temaların tema dosyaları için farklı bir yapısı vardır.
WordPress Gönderi Döngüsünde Yalnızca Alt Kategoriyi Görüntüleme
Bu eğitimde, tema dosyanızı Bluehost dosya yöneticisini kullanarak nasıl düzenleyeceğinizi göstereceğiz. Ancak barındırma sağlayıcınız ne olursa olsun, adımlar benzer olmalıdır.
Öncelikle Bluehost kontrol panelinize giriş yapın ve ‘Web Siteleri’ sekmesine gidin. Ardından, düzenlemek istediğiniz sitede ‘Ayarlar’a tıklayın.

Ardından, Hızlı Bağlantılar bölümüne aşağı kaydırın.
Ardından, ‘Dosya Yöneticisi’ düğmesine tıklayın.

Bu, dosya yöneticisini açacaktır.
Şimdi, kategorileri görüntülemekten sorumlu tema dosyanızdaki kodu bulmanız gerekecek. Bunu, sitenizin public_html klasörüne » wp-content » themes » mevcut temanızın klasörüne giderek yapmaya başlayabilirsiniz.
Bu aşamada, doğru dosyayı bulmak için her dosyayı ve klasörü tek tek açmanız gerekebilir. Yapabileceğiniz bir şey, kategoriyle ilgili kodları, örneğin has_category veya get_the_category_list gibi aramaktır. Bunları bulursanız, doğru dosyada olmalısınız.
Doğru şablon dosyasını bulamazsanız, lütfen WordPress şablon hiyerarşisi hileli kağıdımıza ve düzenlenecek doğru tema dosyasını nasıl bulacağınıza dair rehberimize bakın.
Eğer Twenty Twenty-One temasını kullanıyorsanız, bakmanız gereken dosya 'inc' klasöründeki template-tags dosyasıdır. Bulduğunuzda, dosyaya sağ tıklayıp 'Düzenle' seçeneğini seçebilirsiniz.

Dosyada, kategorileri ve etiketleri görüntülemekten sorumlu kod parçası budur:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
$categories_list = get_the_category_list( wp_get_list_item_separator() );
if ( $categories_list ) {
printf(
/* translators: %s: List of categories. */
'<span class="cat-links">' . esc_html__( 'Categorized as %s', 'twentytwentyone' ) . ' </span>',
$categories_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );
if ( $tags_list && ! is_wp_error( $tags_list ) ) {
printf(
/* translators: %s: List of tags. */
'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
echo '</div>';
}
} else {
Doğru kodu bulduğunuza göre, bu kod parçasının tamamını şununla değiştirebilirsiniz:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
// Get the list of categories
$categories = get_the_category();
$child_cat_IDs = array(); // Array to store child category IDs
$parent_cat_IDs = array(); // Array to store parent category IDs
foreach ( $categories as $category ) {
if ( $category->parent > 0 ) {
$child_cat_IDs[] = $category->term_id; // Store the child category ID
} else {
$parent_cat_IDs[] = $category->term_id; // Store the parent category ID
}
}
// Output child categories if there are any
if ( !empty($child_cat_IDs) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
foreach ( $child_cat_IDs as $cat_id ) {
$cat_link = get_category_link($cat_id);
$cat_name = get_cat_name($cat_id);
$output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
}
$output .= '</span>'; // Close the span tag after the loop
echo $output; // Output the child category links
// Output parent categories if there are no child categories
} elseif ( !empty($parent_cat_IDs) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' ) . ' ';
foreach ( $parent_cat_IDs as $cat_id ) {
$cat_link = get_category_link($cat_id);
$cat_name = get_cat_name($cat_id);
$output .= '<a href="' . esc_url($cat_link) . '">' . esc_html($cat_name) . '</a> ';
}
$output .= '</span>'; // Close the span tag after the loop
echo $output; // Output the parent category links
}
// Handle tags
$tags_list = get_the_tag_list('', wp_get_list_item_separator());
if ( $tags_list && ! is_wp_error( $tags_list ) ) {
printf(
/* translators: %s: List of tags. */
'<span class="tags-links">' . esc_html__( 'Tagged %s', 'twentytwentyone' ) . '</span>',
$tags_list // phpcs:ignore WordPress.Security.EscapeOutput
);
}
echo '</div>'; // Close post-taxonomies div
}
} else {
Bu kod parçacığı önce gönderiye atanan tüm kategorileri belirler. Ardından, her kategorinin bir üst öğesi olup olmadığını kontrol eder.
Eğer öyleyse, bu bir alt kategori olduğu anlamına gelir ve görüntüleme listesine eklenir. Üst kategoriler atlanır, bu da gönderinizin kategorizasyonunun daha temiz ve daha spesifik bir şekilde görüntülenmesini sağlar.
Kodu değiştirdiğinizde neye benzemesi gerektiği aşağıdadır:

Bittiğinde, değişikliklerinizi kaydedin.
Şimdi, bir veya daha fazla alt kategorisi olan bir gönderiyi ziyaret etmeniz gerekiyor. Üst kategorinin gizlendiğini ve WordPress'in yalnızca alt kategorileri gösterdiğini göreceksiniz.

Umarım bu makale, WordPress yazılarınızda yalnızca alt kategoriyi nasıl göstereceğinizi öğrenmenize yardımcı olmuştur. Sonra, WordPress'te bireysel kategorileri farklı şekilde biçimlendirme hakkındaki makalemizi ve WordPress'te kategoriye göre arama hakkındaki başlangıç kılavuzumuzu görmek isteyebilirsiniz.
Bu makaleyi beğendiyseniz, lütfen WordPress video eğitimleri için YouTube Kanalımıza abone olun. Bizi ayrıca Twitter ve Facebook'ta da bulabilirsiniz.

Mike
Hallettim!
foreach((get_the_category()) as $childcat) { $parentcat = $childcat->category_parent; if (cat_is_ancestor_of(10, $childcat)) { echo get_cat_name($parentcat); } }
MIke
Üç ana kategorim var ve bu kod, seçilen gerçek kategori adını yazdırmak için tek sayfa döngümde başarıyla çalışıyor.
Şimdi kategorinin üst öğesini yazdırmak istiyorum. Karmaşıklık, ana kategorinin altında iki katmanım olması (3 seviye) ve üst seviye üst öğeyi değil, bir seviye üst öğeyi yazdırmak istemem. Üst öğeyi yazdırmak kolay görünüyor, ancak bir torun kategorisinin çocuk seviyesi kategorisini döndürmek için herhangi bir kod görmedim?
amnachohan
Döngünün dışında çalışır mı?
Marian Rick
Bu harika bir kod parçası. Şimdilik çok teşekkürler!
Projelerimden biri için daha ileri gitmem ve yalnızca en alt alt kategoriyi göstermem gerekiyor. Yani üç seviye olabilir (Formlar -> Kareler -> Büyük Kareler). Bu kodla tüm altlar (Kareler -> Büyük Kareler) görüntülenir. Bu koda yalnızca son çocuğun bulunup görüntüleneceği zamana kadar işlemi tekrarlamasını nasıl söyleyebilirim?
Bunun için herhangi bir çözümünüz varsa, yine kahramanlarımsınız! Harika işinize ve blogunuza devam edin!
GoranJakovljevic
bunu tek bir kategori yerine 2 kategori için yapmak mümkün mü?
gashface
&orderby=ID'yi nasıl dahil edebilirim?
Andus Beckus
Bu harika, teşekkürler!
Peki ya sadece kategori 10'un değil, tüm kategorilerin alt öğelerini nasıl görüntüleyebiliriz?
Be great if someone could help with this.
Yayın Kadrosu
Tüm alt kategorilerin bir listesini görüntülemeye çalışıyorsanız, wp_list_categories() fonksiyonunu kullanın. Yalnızca alt kategorileri veya yalnızca üst kategorileri listelemenize izin veren parametrelere sahiptir. Ancak bu, bu makalede bahsettiğimiz durum için işe yaramaz.
Yönetici
Mattia
harika, ama eğer "kategori 10" yerine "mevcut kategori" göstermek istersem?
Keith Davis
Sizlerden harika bilgiler aldım.
Gerçekten bu PHP'ye başlamam gerekiyor.
Harika bir site çocuklar ve Pagerank'ınızın 6'ya yükseldiğini fark ettim!
Pagerank'ınızı yükseltmekle ilgili birkaç gönderi ne dersiniz.