【问题标题】:Wordpress - customized wp_nav_menu for specific menuWordpress - 为特定菜单定制 wp_nav_menu
【发布时间】:2014-08-26 21:25:20
【问题描述】:

我有一个名为“header-menu”的菜单,我只希望这个菜单受我在下面写的函数的影响。如何防止其他菜单受到影响?

脚本在 header.php 中被这样调用

<?php
wp_nav_menu(array('theme_location' => 'header-menu'); 
?>

在functions.php中,我希望这个过滤器在处理'header-menu'时能知道

<?php
add_filter( 'wp_nav_menu_objects', 'my_menu_filter' );
function my_menu_filter( $items ) {
    $i = 0;
    foreach ( $items as $item )
    {
        if($i == 6)
            $item->title = '<div id="end">.$item->title.</div>';
        else
            $item->title = '<div class="link">.$item->title.'</div>';
        $i++;
    }
    return $items;
}
?>

【问题讨论】:

    标签: php wordpress content-management-system wordpress-theming


    【解决方案1】:

    找到了我自己问题的答案:

    add_filter( 'wp_nav_menu_objects', 'my_menu_filter', 10, 2);
    function my_menu_filter( $items, $args ) {
        if($args->theme_location == "header-menu")
        {
            $i = 0;
            foreach ( $items as $item )
            {
                if($i == 6)
                    $item->title = '<div id="end">' . $item->title . '</div>';
                else
                    $item->title = '<div class="link">' .$item->title.'</div>';
                $i++;
            }
        }
        return $items;
    }
    

    答案是 add_filter 的第四个参数,它允许传递第二个对象。检查条件语句。

    【讨论】:

      猜你喜欢
      • 2012-07-06
      • 2019-10-29
      • 1970-01-01
      • 2012-09-03
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      • 1970-01-01
      相关资源
      最近更新 更多