在wp_NAV_MENU末尾添加链接

时间:2014-05-07 作者:Tom

我需要在中添加条件菜单项,如“/at”或“/de”或“/ch”wp_nav_menu. 由于链接是有条件的(基于网站所处的国家),因此不能从后端添加链接,而是必须进行硬编码。

如何在wp_nav_menu 是否正在填充?非常感谢。

2 个回复
最合适的回答,由SO网友:Tom 整理而成

这是对我有用的(基于this).. 希望这对其他人也有帮助。。

add_filter( \'wp_nav_menu_items\',\'primary_navigation\', 10, 2 );
function primary_navigation( $items, $args ) {
    if( $args->theme_location == \'primary_navigation\' )  {
        if ( ! isset( $_SESSION[\'menu_country\'] ) ) {
            $country = json_decode( file_get_contents(
               "http://freegeoip.net/json/" . esc_url( $_SERVER[\'REMOTE_ADDR\'] )
            ) );

            $_SESSION[\'menu_country\'] = strtolower( $country->country_code );   
        }

       $items .=  \'<li class="menu-produkte"><a href="/\' .
          esc_url( $_SESSION[\'menu_country\'] ) .\'/shop">Produkte</a></li>\';
    }
    return $items;
}

SO网友:Chance Strickland

您还可以使用items_wrap 如果你想的话。还没有测试过,但可能是:

if ( !isset( $_SESSION[\'menu_country\'] ) ) {
    $country = json_decode( file_get_contents(
     "http://freegeoip.net/json/" . esc_url( $_SERVER[\'REMOTE_ADDR\'] )
    ) );

    $_SESSION[\'menu_country\'] = strtolower( $country->country_code );

    $item = \'<li class="menu-produkte"><a href="/\' .
        esc_url( $_SESSION[\'menu_country\'] ) . \'/shop">Produkte</a></li>\';
}
else {
    $item = null;
}
wp_nav_menu( array(
    \'items_wrap\' => \'<ul id="%1$s" class="%2$s">%3$s\' . $item . \'</ul>\',
) );

结束

相关推荐

How to add taxonomy in menus?

书籍(自定义帖子类型)小说(税)科学(税)历史(税)--书籍体裁(税务)小说(术语)科学(学期)历史(学期)以下哪一项是做这件事的“好方法”?对于前一个(这是我目前在管理菜单中的功能,我为每个功能都提供了“register\\u taxonomy”功能),我无法选择要在菜单中显示的“Tax”。而对于后者,我可以将它们添加到菜单中,只需要一个“register\\u taxonomy”函数。