如何通过代码获取并编辑WordPress导航区块?
解决方案:WordPress新版导航区块的代码编辑方式
不需要直接修改wp_posts表中的post_content字符串,WordPress提供了官方合规的API来处理新版导航,更安全且不易出错:
- 获取导航对象:用
wp_get_navigation()替代旧的wp_get_nav_menu_object(),它能正确识别新版wp_navigation帖子类型。示例代码:$navigation = wp_get_navigation( array( 'title' => 'Main' ) ); - 编辑菜单项:拿到导航对象后,通过
wp_get_nav_menu_items()获取所有菜单项,再用wp_update_nav_menu_item()添加/修改项,wp_delete_nav_menu_item()删除项。示例:if ( $navigation ) { // 获取当前导航的所有菜单项 $menu_items = wp_get_nav_menu_items( $navigation->menu_id ); // 添加新菜单项 $new_item_id = wp_update_nav_menu_item( $navigation->menu_id, 0, array( 'menu-item-title' => '新菜单项', 'menu-item-url' => 'https://example.com', 'menu-item-status' => 'publish' ) ); // 删除指定菜单项(需提前知晓目标item ID) // wp_delete_nav_menu_item( $target_item_id ); } - 不建议直接修改post_content:导航的
post_content是区块格式的结构化字符串,手动修改极易破坏区块结构,导致导航显示异常。官方API会自动处理内容的序列化与存储逻辑,更可靠。
如果需要对区块结构做精细化调整,也可以用parse_blocks()解析post_content为区块数组,修改后再用serialize_blocks()重新生成内容,但这种方式仅适合特殊场景,优先推荐官方导航菜单API。
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

