Starlight Ensign

WordPress4.0アップデートに伴うメインメニューの修復

他所でこういう問題が起こった人がいるかは分からないが,自分のところでは起きた問題に対する対策.


症状:メインメニューがうまく表示されず,メニューリストの最上段にあるメニューが自動的にヘッダーに表示されてしまう.

menu2
初期状態だと,「位置の管理」タブがなく,メインメニューの横の(Primary Menu)が無かった.この場合,「イジェール語用メニュー」がヘッダーに表示されてしまう.

対策:

  1. wp_nav_menu()の引数を書き変える.
  2. register_nav_menu()をfunction.phpに追加する.
  3. メニューを更新して保存する.

自分のブログは自作のテーマを使っている.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というメニュー選択画面内の位置として登録せよ」ということになる.

最後に,メニューの更新を行った.
menu2
初めと同じ画像だが,ここの「位置の管理」タブ内に「Primari Menu」というプルダウンメニューが現れている.そこでメインメニューにしたいメニューを選び,配置すればこのSSのような状態になる.そして,何故か一度右の「メニューを保存」ボタンを押さないと,メニューがうまく表示されなかった.これは注意が必要だと思う.


対策は以上でおしまい.コードを書くようなテンプレートになってないのでとても見にくいのはご容赦を.

参考


コメントを残す





XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>