カスタム投稿タイプをナビゲーションに足してその下層の時にもcurrent出したい時の。

うーん。

あんまりうまくできてないと思うのですが、

  • 料理(meal)というカスタム投稿タイプを追加
  • 提供時間(m_time)というカスタムタクソノミーを追加(ランチ、ディナーとかを登録のイメージ)
  • グロナビなど、wp_nav_menuで料理のarchiveページへのリンクを追加してる

という状況。
この場合、example.com/mealの時はcurrent-menu-itemクラスが追加されるのですが、

  • 提供時間のarchiveページ
  • 料理タイプの個別記事ページ

にいるときには追加されず困ります。

@jim0912さんのナビゲーションメニューのclassにページやカテゴリーのスラッグを追加してみるというページを参考に、下記のようにしてみました。

*これだと、毎回手動で入力しないといけないので自動で取得するようにしないといけないですが、重くなりそうなのでまた今度。。

function make_menu_current( $classes, $item ) {
	if ( $item->title == '料理' && ( is_tax( 'm_time' ) || 'meal' == get_post_type() ) ) {
		$classes[] = 'current-menu-item';
	}
	$classes = array_unique( $classes );
	return $classes;
}
add_filter( 'nav_menu_css_class', 'make_menu_current', 10, 2 );

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です