我有一个自定义代码,它会自动将类别添加到多站点菜单中。假设我有一个类别名称“Cat1”,然后一旦我运行我的代码,它将自动添加到菜单中。但是,如果博客已登录,则会添加1个问题。如果没有登录,我想添加。
这是我的代码:
require( dirname(__FILE__) . '/wp-load.php' );
require_once( dirname(__FILE__) . '/wp-includes/ms-functions.php');
require_once( dirname(__FILE__) . '/wp-includes/user.php');
require_once( dirname(__FILE__) . '/wp-admin/includes/taxonomy.php');
require_once( dirname(__FILE__) . '/wp-admin/includes/nav-menu.php' );
$_nav_menu_selected_id = wp_update_nav_menu_object( 0, array('menu-name' => "Primary Menu") );
$test = array(
array(
'menu-item-db-id' => 0,
'menu-item-object-id' => 2,
'menu-item-object' => 'category',
'menu-item-parent-id' => 0,
'menu-item-type' => 'taxonomy',
'menu-item-title' => 'Rome',
'menu-item-url' => 'http://sub.example.com/love/',
'menu-item-target' => '',
'menu-item-classes' => '',
'menu-item-xfn' => '',
'menu-item-description' => ''
)
);
if($item_ids = wp_save_nav_menu_items( $_nav_menu_selected_id, $test )) {
foreach( $item_ids AS $single_item_id ) {
$my_post = array (
'ID' => $single_item_id,
'post_status' => 'publish',
'post_name' => $single_item_id
);
wp_update_post($my_post);
}
}
$menu_locations = array(
'main-menu' => $_nav_menu_selected_id,
'footer-menu' => $_nav_menu_selected_id
);
set_theme_mod( 'nav_menu_locations', $menu_locations );
如果您运行上面的示例blog1.mysite.com,则会在我登录该博客时添加。但如果不是,它们就不会添加。但是,如果我在www.mysite.com(不是子域)上运行它,即使我没有登录,也会将该类别添加到菜单中。