在菜单列表内容前显示标记

时间:2014-07-07 作者:user3301994

可以在菜单项前插入文本吗?在这种情况下,我想领导<h3> 列表内容的标记(如菜单标题)。我试过了if/else 确认菜单包含内容并显示标题。但如果菜单没有内容,则不必显示标题。

这是:

$args = array(
  \'menu\'        => \'Destination • South America\',
  \'echo\'        => false,
  \'fallback_cb\' => \'__return_false\'
);

if (empty($args)) {
  echo "<li></li>";
}else{
  echo "<h3>South America</h3>";
}
echo strip_tags(wp_nav_menu( $args ), \'<li><a>\');
因为我有内容,所以应该输出:

South America
阿根廷
巴西
智利
哥伦比亚
厄瓜多尔
乌拉圭
委内瑞拉

如果我没有任何内容,那么它不应该显示South America

非常感谢。

1 个回复
SO网友:deflime

将此函数放入主题的function.php 文件

function is_tree($pid) { // $pid = The ID of the page we\'re looking for pages underneath
    global $post;
    $anc = get_post_ancestors( $post->ID );
    foreach($anc as $ancestor) {
            if(is_page() && $ancestor == $pid) {
                    return true;
            }
    }
    if(is_page()&&(is_page($pid))) { return true; /*we\'re at the page or at a sub page*/ }
    else { return false; /*we\'re elsewhere*/ }
}
然后将代码包装到:

<?php
  // put the parent id or in this case, South America\'s id as the parent-id
  if(is_tree(\'parent-id\')) {
    // output your menu
  }
?>

结束

相关推荐

Back up post tags

备份帖子标签的最佳方法是什么?我想删除所有帖子类型上的所有现有标签,但如果出现问题,我希望能够恢复这些标签。。