こんにちは
wp_create_nav_menu() でメニューを、wp_update_nav_menu_item() でメニュー項目を作成することができます。
例:
function my_wpmu_new_blog( $blog_id ) {
switch_to_blog( $blog_id );
$menu = 'main'; // メニュー名
if ( ! is_nav_menu( $menu ) ) {
// 固定ページを作成
$post = array(
'post_content' => '本文です。',
'post_status' => 'publish',
'post_title' => 'プロフィール',
'post_type' => 'page',
'post_name' => 'profile',
);
$post_id = wp_insert_post( add_magic_quotes( $post ) );
// メニューを作成
$menu_id = wp_create_nav_menu( $menu );
if ( $menu_id ) {
if ( $post_id ) {
wp_update_nav_menu_item( $menu_id, 0, array(
'menu-item-title' => 'プロフィール',
'menu-item-object-id' => $post_id,
'menu-item-object' => 'page',
'menu-item-status' => 'publish',
'menu-item-type' => 'post_type',
) );
}
// メニューの位置 top にメニューを設定
$location = 'top';
$term = get_term_by( 'name', $menu, 'nav_menu' );
$locations = get_theme_mod( 'nav_menu_locations' );
$locations[$location] = $term->term_id;
set_theme_mod( 'nav_menu_locations', $locations );
}
}
restore_current_blog();
}
add_action( 'wpmu_new_blog', 'my_wpmu_new_blog' );
ありがとうございます!
早速試して見たいと思います!
wp_update_nav_menu_item()初めて知りました。いろいろ試して見たいと思います。
実装後にまた改めてご連絡いたします。取り急ぎのお礼まで。
ishitaka様
お世話になっております。おかげさまで実現したいことが実現しました。
ありがとうございました。
ーーー
1点別件で、これを入れたことによりサイト作成後、管理画面に入って直後にエラーが出るようになりました。
このエラーについて何かご存知のことがあれば、教えていただけると幸いです。
( ! ) Fatal error: Uncaught Error: Call to a member function get_page_permastruct() on null in /app/public/wp-includes/link-template.php on line 376
( ! ) Error: Call to a member function get_page_permastruct() on null in /app/public/wp-includes/link-template.php on line 376
本件は別スレで質問を立てます。
まずはありがとうございました。