サブサイトのプライマリナビゲーションメニューを切り替えて、メインサイトのプライマリナビゲーションを表示することができました。
ただし、コードで指定されたメニューの場所ではなく、サイトヘッダーの上にレンダリングされます。
これが私が現在持っているコードです:
function wp_multisite_nav_menu() {
global $blog_id;
}
if ( ! is_multisite() || 2 == $blog_id ) {
switch_to_blog( 1 );
wp_nav_menu( array(
'menu' => 2,
'fallback_cb' => false,
'menu_class' => 'genesis-nav-menu',
'theme_location' => 'Primary Navigation Menu',
));
restore_current_blog();
}
メニューが「プライマリナビゲーションメニュー」の場所に配置されることを期待していました。
私は何を逃しましたか?
どんな明快さもありがたいです。
更新
プライマリメニューとセカンダリメニューでそれを理解できましたが、サイトのタイトルをメインサイトのタイトルとハイパーリンクに変更するにはどうすればよいですか?
これが私が現在持っているコードからサイトタイトルスイッチを引いたものです
//*Multisite global menus
//*Primary global menu
add_action('genesis_after_header', 'primary_menu_switch');
function primary_menu_switch() {
global $blog_id;
if ( ! is_multisite() || 2 == $blog_id ) {
switch_to_blog( 1 );
wp_nav_menu( array(
'menu' => 2,
'fallback_cb' => false,
'menu_class' => 'genesis-nav-menu',
'theme_location' => 'primary'
) );
restore_current_blog();
}
}
//*Secondary global menu
add_action('genesis_header_right', 'secondary_menu_switch');
function secondary_menu_switch() {
global $blog_id;
if ( ! is_multisite() || 2 == $blog_id ) {
switch_to_blog( 1 );
wp_nav_menu( array(
'menu' => 17,
'fallback_cb' => false,
'menu_class' => 'genesis-nav-menu menu-primary responsive-menu',
'theme_location' => 'primary'
));
restore_current_blog();
}
}
//*Use main site title
function site_title_switch() {
global $blog_id;
if ( ! is_multisite() || 2 == $blog_id ) {
switch_to_blog( 1 );
restore_current_blog();
}
}
私は完全な初心者なので、ハックの仕事を許してください。
あなたの洞察は高く評価されています。
これは更新された質問に対する回答であり、タイトルの質問に対する回答ではありません。
ネットワークでアクティブ化されるプラグインに入れると、これでうまくいくはずです。コメントを読んで、正確に何をするかを確認してください。テーマの作り方によってはうまくいかない場合があります。私は21のテーマのためにそれを作りました。
ヘッダーだけでなく、パス '/'で呼び出されるすべての場所でホームURLが変更されることに注意してください。
add_filter( 'option_blogname', 'function_to_filter_the_blogname' );
// Changes the blog name of all sites that are not the main one to the name of the main one, only outside of the admin panel
function function_to_filter_the_blogname( $name ) {
$main_site_id = get_main_site_id();
if ( get_current_blog_id() != $main_site_id && ! is_admin() ) {
return get_blog_option( $main_site_id, 'blogname' );
}
return $name;
}
add_filter( 'home_url', 'function_to_filter_the_home_url', 10, 4 );
// Changes the home URL of all sites that are not the main one to the home URL of the main one, only outside of the admin panel and only when the path is '/'
function function_to_filter_the_home_url( $url, $path, $orig_scheme, $blog_id ) {
$main_site_id = get_main_site_id();
if ( $blog_id != $main_site_id && ! is_admin() && '/' == $path ) {
return get_blog_option( $main_site_id, 'home' );
}
return $url;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加