将项目添加到菜单不在多站点中工作

时间:2015-02-18 13:04:12

标签: php wordpress

我有一个自定义代码,它会自动将类别添加到多站点菜单中。假设我有一个类别名称“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(不是子域)上运行它,即使我没有登录,也会将该类别添加到菜单中。

0 个答案:

没有答案