您现在的位置:首页 >> 前端 >> 内容

菜单管理界面菜单项增加自定义字段

时间:2017/8/18 10:33:57 点击:

  核心提示:1、增加菜单项添加过滤器wp_setup_nav_menu_item钩子add_filter( wp_setup_nav_menu_item, 回调函数);原型参考:apply_filters( wp...

1、增加菜单项

添加过滤器wp_setup_nav_menu_item钩子

add_filter( 'wp_setup_nav_menu_item', '回调函数');

原型参考:

apply_filters( 'wp_setup_nav_menu_item', object $menu_item )

 

Filters a navigation menu item object.

Parameters #Parameters

 

$menu_item (object) The menu item object.

 

回调函数:

$menu_item->newItem = get_post_meta( $menu_item->ID,'_menu_item_newItem', true );

 

2、显示菜单项

显示实际上最后是调用wp_edit_nav_menu_walker显示的,增加自定义wp_edit_nav_menu_walker过滤器

add_filter('wp_edit_nav_menu_walker', '自定义walker回调', 10, 2 );

 

3、保存设置

添加动作wp_update_nav_menu_item钩子

add_action( 'wp_update_nav_menu_item', '回调函数',10, 3 );

原型参考

do_action( 'wp_update_nav_menu_item', int $menu_id, int$menu_item_db_id, array $args )

Fires after a navigation menu item has been updated.

 

Parameters #Parameters

$menu_id (int) ID of the updated menu.

$menu_item_db_id (int) ID of the updated menu item.

$args (array) An array of arguments used to update a menu item.

回调函数:

获取post中自定义参数的值,并调用update_post_meta保存

update_post_meta( $menu_item_db_id, '_menu_item_'.$key, $value );

4、使用设置

显示前调用wp_get_nav_menu_items获取菜单项,会调用wp_setup_nav_menu_item过滤器增加自定义项,在前台页面可以直接显示。

作者:网络 来源:Charlie_hu