我想勾搭上\'nav_menu_item_args\'
筛选方法start_el()
在里面class Walker_nav_menu
:
/**
* Filters the arguments for a single nav menu item.
*
* @since 4.4.0
*
* @param stdClass $args An object of wp_nav_menu() arguments.
* @param WP_Post $item Menu item data object.
* @param int $depth Depth of menu item. Used for padding.
*/
$args = apply_filters( \'nav_menu_item_args\', $args, $item, $depth );
这是我的代码:
function filter_nav_menu_item_args($args, $item, $depth)
{
if ($args->menu->slug == \'countries\')
{
$args->link_before = print_r($item, true); // <-- Outputs nothing
}
return $args;
}
add_filter(\'nav_menu_item_args\', \'filter_nav_menu_item_args\' );
但我在尝试使用
$item
论点它是空的。我很确定我在叫菜单。这个
$args
数组包含所有正确的值。
那么,这是一个bug吗?还是我做错了什么?
最合适的回答,由SO网友:cybmeta 整理而成
过滤器(和操作)需要用回调接受的参数数声明;它是的第四个参数add_filter()
(默认值1
):
add_filter( \'nav_menu_item_args\', \'filter_nav_menu_item_args\', 10, 3 );
function filter_nav_menu_item_args( $args, $item, $depth ) {
print_r( $item );
return $args;
}
请参见
add_filter()
for reference.