人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

wordpressのcompleteテーマについて教えてください。固定ページ表示のときに左メニューをウィジットから固定ページを設定してます。そのときに該当ページのメニューのみ(1項目)を左サイドメニューに表示させる方法はないでしょうか?


●質問者: kaji0245
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●100ポイント

ページ上部のナビゲーションメニュー用とは別に、固定ページのサイドバー用のメニューを作成して、ウィジェットに設定してあることが前提条件になります。
テーマの「functions.php」に次の記述を追加してください。

function replace_to_own_menu($menu) {
if( is_page( 'ページ名1' ) ) {
preg_match('!<li[^>]+><a[^>]+>ページ名1</a>\s*<ul[^>]+>\r*\n\s*(?:.+?\r*\n\s*)+?</ul>\r*\n</li>\r*\n!u', $menu, $matches);
return $matches[0];
} // 目的の固定ページが2つ以上ある場合は、目的のページ用に次の記述を追加します。
 elseif( is_page( 'ページ名2' ) ) { 
preg_match('!<li[^>]+><a[^>]+>ページ名2</a>\s*<ul[^>]+>\r*\n\s*(?:.+?\r*\n\s*)+?</ul>\r*\n</li>\r*\n!u', $menu, $matches);
return $matches[0];
} // ここまでで1つのページ用
// 任意のページ以外ではすべてのメニューを表示する場合に次の行のコメントアウトを解除します。(※メニューを表示しない場合はこのまま。)
// return $menu;
}
add_filter('wp_nav_menu_メニュースラッグ_items', 'replace_to_own_menu');

※「メニュースラッグ」の箇所は、固定ページ用のウィジェットで指定したメニューのスラッグに置き換えます。
※メニュースラッグは、半角スペースがハイフン「-」に、大文字は小文字になります。(日本語だとエンコードされて長くなりますので、英数字のメニュー名に変更してから試してみてください。)
例えばメニューの名前が「Pages Menu」の場合、「pages-menu」になります。

add_filter('wp_nav_menu_pages-menu_items', 'replace_to_own_menu');
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ