WordPress4.0アップデートに伴うメインメニューの修復
- 2014年09月06日
- web
- No Comment
他所でこういう問題が起こった人がいるかは分からないが,自分のところでは起きた問題に対する対策.
症状:メインメニューがうまく表示されず,メニューリストの最上段にあるメニューが自動的にヘッダーに表示されてしまう.
初期状態だと,「位置の管理」タブがなく,メインメニューの横の(Primary Menu)が無かった.この場合,「イジェール語用メニュー」がヘッダーに表示されてしまう.
対策:
- wp_nav_menu()の引数を書き変える.
- register_nav_menu()をfunction.phpに追加する.
- メニューを更新して保存する.
自分のブログは自作のテーマを使っている.wp_nav_menu()はそのままヘッダーに引数なしのデフォルト状態で配置していた.今まではそれで問題が起きなかったのだが,WordPress4.0に至って仕様変更があったようだ.他のテーマを参考に,< ?php wp_nav_menu(); ?>
を< ?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
に書き換えた.まず,これで「primaryという場所に登録されているメニューをここに表示せよ」という事をこの関数に伝えることが出来る.
次に,register_nav_menu()関数をfunction.phpに書き加えた.register_nav_menus( array('primary' => __( 'Primary Menu')) );
を適当な位置に追加することで,「primaryという場所名を,Primary Menuというメニュー選択画面内の位置として登録せよ」ということになる.
最後に,メニューの更新を行った.
初めと同じ画像だが,ここの「位置の管理」タブ内に「Primari Menu」というプルダウンメニューが現れている.そこでメインメニューにしたいメニューを選び,配置すればこのSSのような状態になる.そして,何故か一度右の「メニューを保存」ボタンを押さないと,メニューがうまく表示されなかった.これは注意が必要だと思う.
対策は以上でおしまい.コードを書くようなテンプレートになってないのでとても見にくいのはご容赦を.