web-dev-qa-db-ja.com

カスタムリンクに(css)クラスを追加してcurrent_page_itemにする方法

カスタムメニュー項目として、wpはクラスcurrent_page_itemを追加しません。

他のすべてのリンクはそれがしますか?

<ul class="nav" id="menu-mainmenu"><li class="menu-item menu-item-type-custom menu-item-home menu-item-21152" id="menu-item-21152"><a href="http://mydomain/">Home</a></li>
<li class="menu-item menu-item-type-post_type current-menu-item page_item page-item-21154 current_page_item menu-item-21156" id="menu-item-21156"><a href="http://mydomain/">Future TV Guide</a></li>
<li class="menu-item menu-item-type-post_type menu-item-21153" id="menu-item-21153"><a href="http://mydomain/">About</a></li>
</ul>

アクティブリンクとして表示したい

1
erichmond

.current_page_itemと一緒に.current-menu-itemをターゲットにすることはできませんか。

0
Chip Bennett

カスタムメニュー項目がアクティブであることをWPが理解するのは少し難しいです。結局のところ、それらは外部リンクのためのものなので、あなたのWPインストールでさえないかもしれません。 WPはページを読み込むたびにメニューを生成するので、アクティブなメニュー項目が何であるかを単純に判断しようとします。

あなたの問題を克服するために...最初に、あなたがカスタムメニュー項目を配置せずにあなたがする必要があることをすることができるかどうか評価しなさい。それでもその[カスタム]ターゲットにWPメニューが表示される場合は、他の方法でメニューに追加できる可能性があります。

何らかの理由でそれが選択肢にならない場合は、<body>タグに添付されているスタイルクラスとメニューエントリに添付されているスタイルクラスを比較してください。たとえば、リンクされているページがある場合、結果として本文タグにpage-id-2、メニューエントリにpage-item-2が表示されます。

あなたのスタイルシートを調整して、アクティブなものとしてその組み合わせを強調表示します。たとえば、私の場合はエントリです

body.page-item-2 #menu-main-menu .page-id-2 {
    whatever: styles;
    are: suitable;
}

また、メニュー項目のスラッグを調整することによって、メニュー項目クラスの少なくとも1つの項目に対する制御が制限されていることにも注意してください。

1
wyrfel