WordPress yazı döngüsünde yalnızca alt kategoriyi mi görüntülemek istiyorsunuz?
Çoğu WordPress teması, üst ve alt kategoriler de dahil olmak üzere bir yazı için tüm kategorileri gösterir. Ancak yazılarınıza çok sayıda kategori eklerseniz bu durum sitenizin dağınık görünmesine ve okuyucuların ilginç içerikleri bulamamasına neden olabilir.
Bu makalede, WordPress yazı döngüsünde yalnızca alt kategoriyi nasıl kolayca görüntüleyebileceğinizi göstereceğiz.
WordPress Yazı Döngüsünde Neden Sadece Alt Kategori Görüntüleniyor?
Bir WordPress blogu oluştururken, kategoriler ve etiketler kullanarak içeriğinizi düzenleyebilirsiniz.
Okuyucuların ilginç içerikleri daha hızlı bulmasına yardımcı olmak için alt kategoriler (veya alt kategoriler) bile oluşturabilirsiniz.
Örneğin, bir seyahat blogunuz varsa, bir ‘Gidilecek Yerler’ kategorisi oluşturabilir ve ardından ‘Avrupa’, ‘Amerika’ ve ‘Avustralya’ gibi alt kategorilere sahip olabilirsiniz.
Varsayılan olarak, çoğu WordPress teması bir yazı için tüm üst ve alt kategorileri gösterir.
Ancak çok sayıda kategori kullanırsanız blog sayfalarınız dağınık ve karmaşık görünmeye başlayabilir. Ayrıca okuyucuların ilgilendikleri kategoriyi bulmalarını da zorlaştırabilir.
Bu nedenle, bir yazının genel üst kategorilerini gizlemek ve yalnızca alt kategorileri göstermek isteyebilirsiniz. Bununla birlikte, WordPress yazı döngüsünde yalnızca alt kategorileri nasıl görüntüleyebileceğinizi görelim.
WordPress Tema Dosyasını Düzenlemeden Önce: Unutulmaması Gereken Önemli Noktalar
Bu kılavuz, kodlama ve WordPress tema dosyalarını düzenleme konusunda rahat olan kişilere yöneliktir. Öğreticiyi takip etmeden önce yapmanız gereken bazı şeyler şunlardır:
- Öncelikle, bu dosyalara erişebilmek için web sitenize FTP ile bağlanmanı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 parçacıkların WordPress’e nasıl yapıştırılacağına ilişkin başlangıç kılavuzumuza bakabilirsiniz.
- Bu yöntemi izlemek için bir yedek oluşturmanızı veya bir hazırlık sitesi kullanmanızı öneririz. Bu şekilde, bir şeyler ters giderse canlı siteniz etkilenmeyecektir.
Son olarak, bu kılavuz yalnızca klasik WordPress temaları için geçerlidir. Blok temalar, tema dosyaları için farklı bir yapıya sahiptir.
WordPress Yazı Döngüsünde Yalnızca Alt Kategoriyi Görüntüleme
Öncelikle, tema dosyalarınızda kategorileri görüntülemekten sorumlu olan kodu bulmanız gerekecektir. Bunu yapmak biraz zaman alabilir, ancak işleri hızlandırmak için kod düzenleyicinizin bulma özelliğini kullanabilirsiniz.
has_category
veya get_the_category_list
gibi kategoriyle ilgili kodları bulmaya çalışın. Bunları bulursanız, doğru dosyada olmalısınız.
Twenty Twenty-One temasını kullanıyorsanız, aramanız gereken dosya ‘inc’ klasörünün içindeki template-tags
dosyasıdır. İşte kategorileri görüntülemekten sorumlu kod parçacığı:
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
);
}
echo '</div>';
}
Doğru şablon dosyasını bulamıyorsanız, lütfen WordPress şablon hiyerarşisi hile sayfamıza bakın.
Artık doğru kodu bulduğunuza göre, aşağıdaki kod parçacığını ekleyebilirsiniz:
// Get the IDs of categories
$categories = get_the_category();
$child_cat_ID = array(); // Array to store child category IDs
foreach( $categories as $category ) {
// Check if the category has a parent (i.e., it's a child category)
if ( $category->parent > 0 ) {
$child_cat_ID[] = $category->term_id; // Store the child category ID
}
}
if ( !empty($child_cat_ID) ) {
$output = '<span class="cat-links">' . esc_html__( 'Categorized as ', 'twentytwentyone' );
foreach($child_cat_ID 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; // Echo the entire output
Twenty Twenty-One temasını kullanıyorsanız, yukarıdaki kodu bu satırlar arasındakileri değiştirerek eklemelisiniz:
if ( has_category() || has_tag() ) {
echo '<div class="post-taxonomies">';
// Replace the code in between these lines
}
echo '</div>';
}
İşte böyle görünmesi gerekiyor:
İşiniz bittiğinde değişikliklerinizi kaydedin ve ardından dosyayı web barındırma sunucunuza geri yükleyin.
Şimdi, bir veya daha fazla alt kategorisi olan bir yazıyı ziyaret etmeniz gerekiyor. Ana kategorinin gizlendiğini ve WordPress’in artık yalnızca alt kategorileri gösterdiğini göreceksiniz.
Bu makalenin WordPress yazılarınızda yalnızca alt kategoriyi nasıl görüntüleyeceğinizi öğrenmenize yardımcı olduğunu umuyoruz. Daha sonra, WordPress ile çevrimiçi blog yazarak nasıl para kazanılacağına ilişkin kılavuzumuzu veya kullanmanız gereken en iyi SEO eklentileri ve araçları için uzman seçimlerimizi görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Syed Balkhi says
Hey WPBeginner readers,
Did you know you can win exciting prizes by commenting on WPBeginner?
Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
You can get more details about the contest from here.
Start sharing your thoughts below to stand a chance to win!
Mike says
Managed it!
foreach((get_the_category()) as $childcat) {
$parentcat = $childcat->category_parent;
if (cat_is_ancestor_of(10, $childcat)) {
echo get_cat_name($parentcat);
}
}
MIke says
I have three main categories and this code is successfully working in my single page loop to echo the actual selected category name.
I now want to echo the parent of the category. The complication is that I have two layers below the main category (3 levels) and I want to echo the one level parent not the top level parent. It seems easy to echo the top parent, but I haven’t seem any code to return the child level category of a grandchild category?
amnachohan says
Will it work outside the loop ?
Marian Rick says
This is a great piece of code. Thanks a lot so far!
For one of my projects I have to go further, and display only the lowest subcategory. So there may be three levels, (Forms -> Squares -> Big Squares). With this code all subs (Squares -> Big Squares) are displayed. How can I tell this code to repeat the process till only the last child is found and displayed?
If you’ve got any solutions for that you are my heroes once again! Keep up your great work and blog!
GoranJakovljevic says
is it possible to do this for 2 categories instead of single one?
gashface says
How Would I include &orderby=ID ?
Andus Beckus says
This is great thanks!
But how do you display children of all categories and not just cat 10?
Be great if someone could help with this.
Editorial Staff says
If you are trying to display a list of all child categories, then use wp_list_categories() function. It has parameters that allow you to list only child categories or only parent categories. But that doesn’t work for the case that we are talking about in this article.
Yönetici
Mattia says
great, but if I want to show not “category 10” but “current category”?
Keith Davis says
Great snippets of info from you guys.
I really have to start to get into this PHP.
Great site boys and I notice that you are up to Pagerank 6!
How about a couple of posts on upping your pagerank.