Q.質問内容
アンカーリンクが含まれるメニュー項目をアクティブにさせたくない場合、どうすればいいですか?
サイトのURLの後ろに#付きのページ内リンクの指定をすると、メニューの色が変わってしまい困ります。
▼変更箇所イメージ

A.下記の方法でカスタマイズしてください。
編集するファイル: functions.php
下記内容を追記してください。
function remove_current_menu_item_class_from_inner_link($classes,
$item, $args) {
global $wp;
// メニュー項目のURLをサニタイズ
$item_url = esc_url($item->url);
// メニュー項目のURLにアンカーリンクが含まれている場合は、current-menu-itemクラスを削除
if (strpos($item_url, '#') !== false) {
$classes = array_diff($classes, array('current-menu-item'));
}
return $classes;
}
add_filter('nav_menu_css_class',
'remove_current_menu_item_class_from_inner_link', 10, 3);
補足)
・最後尾に「?>」がある場合は、「?>」の上に追記してください。
・「Code Snippets」プラグインを使うことで、「functions.php」ファイルの直接編集が不要になります。
この記事は役に立ちましたか?
もし参考になりましたら、下のボタンで教えてください。
今後の記事作成の参考とさせて頂きます!