sorunu tam anlayamadım. sorun, ana kategorilerde alt kategorileri listelemekse:
Alıntı
<?php
if (is_category()) {
$this_category = get_category($cat);
if (get_category_children($this_category->cat_ID) != "") {
echo "";
echo "<ul>";
wp_list_categories('orderby=name&show_count=0&titl e_li=<h2>Subcategories</h2>&
&use_desc_for_title=1&child_of='.$this_category->cat_ID);
echo "</ul>";
}
}
?>
bu kodla, "kategori ID'yi bul ve bu ID ile ilişkili alt kategorileri listele" dersiniz. bu sayede A-B-C-D-.... ana kategorilerini halledersiniz. sizdeki koddaki gibi child_of=3 diye cat ID belirtmek gerekmez.
eğer sorun, ana kategorilerde sadece alt kategori adlarını, alt kategorilerde ise postları listelemekse:
1-
şu eklenti işe yarayabilir(direkt kod var mı bilmiyorum). bu eklenti sayesinde, "eğer ana kategoriyse alt kategorileri, alt kategori ise postları listele" diyebilirsiniz. wordpress'te if child diye kod varsa daha kolay yaparsınız tabii ama şu an böyle bir kod bulamadım.
2- eğer yukarıdaki olmazsa, archive.php içine,
Alıntı
<?php if (is_category('1,2,3,4,5,6,.......,29')) { ?>
yukarıda verdiğim kodu koyarak alt kategorileri listelersiniz
<?php } else { ?>
postları listele kodu
<?php } ?>
1,2,3...29 diye yazdığım ana kategorilerin ID. bu sayede eğer tanımlanmış kategorilerden birindeyse sadece alt kategorileri, değilse postları listeler.