wordpress将菜单暴露给其余的api

时间:2017-09-01 14:14:39

标签: wordpress wordpress-rest-api

您好我试图将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数据

0 个答案:

没有答案