私は2つに分かれたサイトを持っています。同じテンプレートを(ルックアンドフィールの観点から)サイト全体に適用したいのですが、サイトの各「半分」に独自のトップナビゲーションメニューを持たせる必要があります。サイドメニューは使用されていません。
ホームページは、ユーザーをどちらか一方の側に誘導するカスタムページになります。
これを達成するにはどうすればよいでしょうか。
どうもありがとう
オースティン
最も簡単な解決策はクッキーを設定することでしょう。その後、メニューを印刷する前に、ユーザーのCookieを確認してください。
もう1つの解決策は、2つの部分に異なるURLがあるようにクエリ変数を追加することです。その後、メニューを印刷する前にクエリvarを確認します。この解決策は、2つの異なる部分のパーマリンクで可能になります。 (あなたが望むなら、あなたはきれいなURLを作ることができます)
wp_nav_menu()
のカスタムメニューを使用してください。次に、パート1にいるのかパート2にいるのかを確認します。
if ( ! is_home() || is_front_page() )
{
$args = array(); // Define your menu here
$query_string = explode( '/', $_SERVER['REQUEST_URI'] );
// You need to var_dump( $query_string );
// to see which index/key is matching your requested query string part
if ( 'PART_ONE' === $query_string[0] )
{
wp_nav_menu( array_merge( $args, array( 'menu' => 'MENU PART ONE' ) ) );
}
else
{
wp_nav_menu( array_merge( $args, array( 'menu' => 'MENU PART TWO' ) ) );
}
}
最も簡単な解決策は、Wordpressバックエンドに2つのナビゲーションメニューを作成してから、訪問者がいるページに基づいて異なるヘッダーを読み込むことです。
まずheader.phpを2回コピーして、3つのヘッダーファイルを作成します。例:header.php、headerA.php、headerB.php
さて、あなたのオリジナルのheader.phpを開いて、すべてのコードを次のようなものに置き換えてください:
<?php
if (is_page('contact')){
<?php include(TEMPLATEPATH.'/headerA.php'); ?>
}
elseif (is_page('gallery')){
<?php include(TEMPLATEPATH.'/headerB.php'); ?>
}
else {
<?php include(TEMPLATEPATH.'/headerA.php'); ?>
}
?>
これは、訪問者がいるページのタイプに基づいて、どのヘッダをロードするかをWordressに伝えます。
また、必ず各ヘッダファイルに正しいメニューをロードしてください。
<?php wp_nav_menu( array('menu' => 'Menu A )); ?>