WP Webサイトにいくつかのカテゴリがあります。ユーザーがこのカテゴリを見て、そこから投稿したときに、メニュー項目の1つをアクティブとしてマークします。
どのように私は私のメニュー項目の1つをこのカテゴリーと投稿のためにクラス "current-menu-item"を持つように設定することができますか?
私はこの機能を使います。まず第一に、あなたはあなたのメニュー項目にいくつかのカスタムクラスを追加しなければなりません(スクリーンオプションでクラス入力を許します、それはデフォルトで見えません)。
function mark_menu_item_as_active($classes, $item) {
if( in_array('my-custom-class',$classes) && ( is_category('my-category') /* OR ...*/ ) ) {
$classes[] = 'current-menu-item';
}
return $classes;
}
add_filter('nav_menu_css_class', 'mark_menu_item_as_active', 10, 2);
この関数はすべてのメニュー項目を繰り返し処理するので、そのカスタムメニュークラスを使ってターゲット項目を見つけることができます。それからあなたはあなたが持っているどんな条件(is_category、...)もチェックし、そしてそのクラスに別のクラスを追加します(current-menu-item
、...)。