将html元素添加到wp导航菜单

时间:2012-09-02 作者:gil hamer

我知道如何使用这些函数创建wp菜单。php并在我的sote中显示它,无论在哪里需要菜单(例如顶部菜单、底部菜单),我甚至知道如何使用自定义CSS设置样式。

我想知道是否可以将HTML元素添加到动态自定义菜单中。例如:我想在每个li 项目将如下所示:

<li><a><span>number here</span></a>
<a href="the permalink">
<h4>post title</h4></a>
///
<h5>name of the author</h5>
</li>
是否有方法或功能输出此类菜单?基本上在里面添加一些额外的htmlli 项目

也在内部:

<span>number here</span>
我想添加一个计数器,它将为每个帖子显示一个数字(1-5)

任何帮助都将不胜感激谢谢

2 个回复
SO网友:Douglas.Sesar

我使用以下代码创建了一个动态菜单:

//add login/logout link to menu

add_filter(\'wp_nav_menu_items\', \'wps_add_login_logout_link\', 10, 2);
function wps_add_login_logout_link($items, $args) {
    $login = __(\'Sign in\');
    $logout = __(\'Sign out\');


    $menu_id = \'15\';
    $menu_id2 = \'16\'; 

    if ( ! is_user_logged_in() )
        $link = \'<a href="\' . site_url(\'log-in-log-out\')  . \'">\' . $login . \'</a>\';
    else
        $link = \'<a href="\' . wp_logout_url(\'log-in-log-out\') . \'">\' . $logout . \'</a>\';

    if ( $args->menu == $menu_id )
        $items .= \'<li>\'. $link .\'</li>\';
    elseif ( $args->menu == $menu_id2 )
        $items .= \'<li>\'. $link .\'</li>\';

    return $items;
}
你应该能够抓住$items$args 变量来播放其内容。我希望这有帮助

抱歉,我忘了提到我使用的是“Catalyst”框架,因此$args 对象用于获取菜单idmay 在正常的WP站点中是不同的。

SO网友:ifdion

如果您正在使用wp_nav_menu() 你最好使用wp_get_nav_menu_items() 如果要创建自定义标记。该函数可以返回一个数组,因此需要更多的工作来手动迭代菜单项、“当前菜单项”类和其他详细信息。但另一方面,您可以定制标记&;其他功能,如post count。

$args = array(
    \'order\'                  => \'ASC\',
    \'orderby\'                => \'menu_order\',
    \'post_type\'              => \'nav_menu_item\',
    \'post_status\'            => \'publish\',
    \'output\'                 => ARRAY_A,
    \'output_key\'             => \'menu_order\',
    \'nopaging\'               => true,
    \'update_post_term_cache\' => false
);
$menu_items = wp_get_nav_menu_items(\'product-section\', $args);
foreach($menu_items as $item){
    print_r($items); // just to make sure what is in the array
}

结束

相关推荐

Register_nav_menus()不会注册菜单

请帮助进行菜单注册:我遵循了这个指南(http://codex.wordpress.org/Navigation_Menus)一步一步。向函数中添加了以下代码。php:function register_my_menus() { register_nav_menus( array(\'header-menu\' => __( \'Header Menu\' ) ) ); } add_action( \'init\', \'regist