WordPress:将沃克用于特定菜单,或避免使用沃克

时间:2018-07-31 14:06:45

标签: php wordpress navigation add-filter wp-nav-walker

我正在尝试解决一个特定的问题,并且在弄清楚哪种方法最好时遇到了麻烦。因此,我有一个菜单(通过WP的菜单创建器生成),并希望将每个章节的特色图像作为其各自子菜单的背景图像。这是我现在拥有的:

/***** Images in main TOC ****/

add_filter( 'wp_nav_menu_objects','add_menu_images', 10, 2 );

function add_menu_images( $items, $args ) {

    if ($args->menu == "Main_TOC") {  
      $img_array = array(); 
      foreach ( $items as $item ) {
        if (!$item->menu_item_parent) {
            $img_url = get_the_post_thumbnail_url($item->object_id);
        }
      }
      $args->items_wrap = '<ul id=%1$s class=%2$s style="background-image: url(' . $img_url . ')">%3$s</ul>';


    } // end if main TOC

    return $items;
}

显然,在存在多于一个章节的情况下,这是行不通的-但我不知道如何在不使用助行器的情况下包装子菜单而不是整个菜单,如果我使用助行器,我不会我不知道如何确保代码仅适用于特定菜单,因为我所看到的建议似乎总是涉及修改wp_nav_menu在任何地方的调用方式。在此功能内,是否可以告诉“ Main_TOC”菜单(仅)使用自定义的助步器?还有其他方法可以将background-image属性应用于子菜单吗? (获取图像并进行匹配可能不是问题,我认为我会使用数组,但我不知道如何从子菜单开始。)如果使用助行器是唯一的解决方案,并且只能应用于我要用于它的菜单,沃克代码需要是什么?

谢谢!

0 个答案:

没有答案