web-dev-qa-db-ja.com

カスタム投稿タイプと分類法に.current *タグを追加する

TwentyTenはカスタムメニューにいくつかのクラスを追加しています。例えば:

#access #menu-item-262.current-menu-item, #access #menu-item-262.current-menu-ancestor

私のメインナビゲーションのトップレベルのリンクはすべて、ユーザーが子ページにいるときは.current-menu-ancestorクラスになります - 、自分が作成したカスタム投稿タイプでコンテンツを表示しているとき

カスタム投稿タイプを表示しているときに現在のページをナビゲーションに設定するにはどうすればよいですか?

ありがとう….

2
aendrew

クラスはTwenty Tenテーマではなく、一般的なカスタムナビゲーションメニューコードの _wp_menu_item_classes_by_context() に追加されています。これは から呼び出されます。 wp_nav_menu()

追加のクラスを追加したい場合は、 wp_nav_menu_objects (メニューツリー全体で1回呼び出す)、または のいずれかにフックすることで可能です。 nav_menu_css_class は、個々の項目をレンダリングするときに呼び出されます。

2
Jan Fabry

私は答えをタイプアウトしていたので私はこれを考え出した。

Bodyタグ用にheader.phpに:<body <?php body_class(); ?>>という行がある場合、カスタム投稿テンプレートにはそれぞれ独自の本文クラスがあります。私の場合、そのカスタム投稿タイプのコンテンツはすべてナビゲーションバーの1セクションの下にあるため、宣言の前に本文クラスを追加することができました。つまり、.single-film #menu-item-262です。ここで、 "film"はカスタム投稿タイプの名前です。

とは言っても、このソリューションは、カスタム投稿タイプがナビゲーションのさまざまな部分にあるサイトでは機能しません。私が行ったよりもこれを実行するためのより良い方法はありますか?

ありがとうございます。

0
aendrew