我有一个多站点设置,有两个子域。第一个是site1.example.com
其中包含页面page1
和page2
, 第二个子域是site2.example.com
带页面page3
和page4
.
我正在为创建自定义主题site1.example.com
我想在其中programmatically 在中创建菜单项site1.example.com
参考文献page3
在里面site2.example.com
.
到目前为止,为了以编程方式创建引用同一子域中页面的菜单项,我所做的是使用函数wp_update_nav_menu_item()
, 具体如下:
$page = get_post(111); // page id of a page1, that is in the same subdomain
wp_update_nav_menu_item($menu_id, 0, array(
\'menu-item-title\' => \'Page 1\',
\'menu-item-object-id\' => $page->ID,
\'menu-item-object\' => \'page\',
\'menu-item-status\' => \'publish\',
\'menu-item-type\' => \'post_type\',
));
但要引用另一个子域中的页面,我必须设置
menu-item-type
到
custom 并使用以下调用
wp_update_nav_menu_item($menu_id, 0, array(
\'menu-item-title\' => \'Page 3\',
\'menu-item-url\' => \'http://site2.example.com/page3\',
\'menu-item-status\' => \'publish\',
\'menu-item-type\' => \'custom\',
));
现在,我的问题是:有没有办法在
site1.example.com
参考文献
page3
在里面
site2.example.com
但使用上述第一种方法?(请不要问我为什么不使用上面的第二种解决方案
custom, 但是原因太长,这里无法解释,我需要使用第一种方法)。
我尝试了以下主题site1.example.com
:
$page = get_post(333); // page id of a page3 in the the second subdomain, which is site2.example.com, which is different than the current subdomain
wp_update_nav_menu_item($menu_id, 0, array(
\'menu-item-title\' => \'Page 3\',
\'menu-item-object-id\' => $page->ID,
\'menu-item-object\' => \'page\',
\'menu-item-status\' => \'publish\',
\'menu-item-type\' => \'post_type\',
));
但这样做会导致
debug.log
文件
[28-Feb-2020 20:31:48 UTC] PHP Notice: Trying to get property \'post_parent\' of non-object in /var/www/wordpress/wp-includes/nav-menu.php on line 485
[28-Feb-2020 20:31:48 UTC] PHP Notice: Trying to get property \'post_title\' of non-object in /var/www/wordpress/wp-includes/nav-menu.php on line 486
显然WordPress不喜欢它。但有没有办法解决这个问题?
谢谢