在多站点安装中使用 wp_update_nav_menu_item 函数时,我遇到了一个奇怪的问题。
当我从 wp-admin 中执行此操作时,它通常可以工作。然而,现在我的任务是编写一个处理程序脚本来自动创建一个站点、添加一些默认页面、添加一个菜单并用这些页面填充菜单。
这是有问题的代码:
$miid = wp_update_nav_menu_item($menu_id, 0, array(
'menu-item-title' => $post['post_title'],
'menu-item-object' => 'page',
'menu-item-object-id' => $pid,
'menu-item-type' => 'post_type',
'menu-item-status' => 'publish',
'menu-item-parent-id' => $navParentID,
'menu-item-position' => $post['menu_order']));
我确保传入函数的所有值都是正确的,并且与我从 wp-admin 仪表板中调用此函数时传入的值匹配。
博客已成功创建,默认页面和菜单也是如此。执行此操作时,它确实返回一个$menu_item_db_id
值,表明它已成功运行,但实际上并未将任何内容添加到菜单中,并且调用类似的东西print_r(wp_get_nav_menu_object($menu_id));
不会返回任何内容。
当我从 wp-admin 中的页面调用具有相同确切输入的相同函数时,一切正常。
我认为可能当前的博客上下文设置不正确,并使用此代码段来验证我是否在正确的博客中:
//Ensure we're updating the correct blog
$blogid = get_current_blog_id();
switch_to_blog($blogid);
echo get_current_blog_id()."<br/>";
有没有其他人遇到过这个问题?