日本語
フォーラム
ホーム / テーマ / dynamic_sidebar()で利用されているWalker_Nav_Menuクラスのオーバライド
(@shotak)
11年、 5ヶ月前
dynamic_sidebar()において、nav-menu-template.phpの Walker_Nav_Menu->wp_nav_menu()が利用されておりますが、このクラス、あるいは関数をオーバライドするにはどのようにすればよいのでしょうか?あるいはどのようにフックすればよいのでしょうか?
wp_nav_menu()をテーマの中で利用してメニューを呼び出している場合は、functions.phpにWalker_Nav_Menuを継承したクラスを定義して、そのクラスを利用することにより実現できたのですが、dynamic_sidebar()において利用されている部分を置き換えるにはどうやればいいのかが解りませんでした。
基本的な部分の理解が不足しているだけの質問でしかないかもしれず、恐縮なのですが、アドバイスいただけたら幸いです。
(@jim912)
フィルターフックの wp_nav_menu_args で指定されたパラメーターを変更することができます。 以下を参考に、theme_locaton の値で条件分岐させるか、dynamic_sidebarの直前で、 add_filter し、直後で remove_filter することで、実現できるかと思います。
WordPress・カスタムメニューでbootstrapのnavbarを対応させるカスタマイズ
アドバイスいただいた内容で実現することができました。 ありがとうございました。大変助かりました。