您好我试图将WordPress菜单暴露给其余的api,但我想让它变得通用,所以我可以创建任何具有相同代码的菜单,但是我的代码有问题,总是显示Json.pase错误,我不知道如何解决这个问题。
这是我的代码。
//define all the menu positions I need
$menus = array(
'main-menu' => __( 'Main Menu' ),
'other-menu' => __( 'Other Menu' )
);
function register_menus() {
//register the menus in the backend
global $menus;
register_nav_menus($menus);
}
add_action( 'init', 'register_menus' );
add_action( 'rest_api_init', function () {
// create custom route to expose the menus
register_rest_route( 'wp_ang/v1', '/menu', array(
'methods' => 'GET',
'callback' => 'get_menu_items',
)
);
}
);
function get_menu_items() {
// callback to get menus and its items
global $menus;
$rest_menu = [];
foreach ($menus as $key => $value){
$menu_name = $key;
$menu_location = get_nav_menu_locations( );
$menu = wp_get_nav_menu_object( $menu_location[$menu_name] );
$menu_items = wp_get_nav_menu_items( $menu->term_id );
}
return $menus;
}
然后我有这个错误:
SyntaxError:JSON.parse:第1行第1列的意外字符 JSON数据