【发布时间】:2015-09-15 14:19:25
【问题描述】:
我想在 wordpress 中创建一个自定义类别导航 3 级。 我不想使用 php wp_nav_menu(),因为我需要在导航中添加类别缩略图。 我找到了这段代码:
<?php // Create category navigation with posts for each subcat
$categories = get_categories();
$catID = $cat->cat_ID;
foreach ($categories as $cat) {
if($cat->category_parent == 0){ //If is a top level category
$subcategories = get_categories('child_of='. $cat->cat_ID);
if (count($subcategories)>0){ ?>
<li class="haschild"><a><?php echo $cat->name; ?><span class="image"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></span></a>
<?php } /* end if has subcats */
else { // else; does not have childen ?>
<li><a href="<?php echo get_category_link( $cat->cat_ID); ?>"><?php echo $cat->name; ?></a><span class="image"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></span></li>
<?php } //end else ?>
<?php // Get the subcats !!! THIS RETURNS ALL DECENDING LEVELS.
$subcategories = get_categories('child_of='. $cat->cat_ID);
if (count($subcategories)>0){
echo "<ul class='sub-menu'>";
foreach ($subcategories as $scat) { ?>
<li><a href="<?php echo get_category_link( $scat->cat_ID); ?>"><?php echo $scat->name; ?><span class="image"><img src="<?php echo z_taxonomy_image_url($scat->term_id); ?>" /></span></a></li>
<?php
echo "";
}
echo "</ul> </li>"; // Close the Child UL DIV and parent LI
} //endif has subcats ?>
<?php } //end if parent ?>
<?php } //end foreach ?>
但它不适用于 3 级,仅适用于 2 级。 您可以直接在我的网站上查看菜单:http://www.designsd.fr/ap/
你有改变它的想法吗?
【问题讨论】:
-
看代码逻辑:它在主循环内部做了一个循环来获取子类别。只需复制有关 subcat 的代码并将其放在 subcat 循环中即可。
-
是的,我知道我尝试这样做,但我不是开发人员,只是前端。你能帮我写出新循环的正确版本吗?
标签: wordpress navigation categories