私は自分のテーマをwordpressで構築しています。アクティブになっているときにメニュー項目に "active"というクラスを追加します。PHPでnavにクラス "active"を追加
<div class="top-nav">
<ul class="memenu skyblue">
<li class="active"><a href="index.php">Home</a></li>
<?php wp_list_pages('&title_li='); ?>
私のfunctions.phpにこのコードを追加しました。
add_filter('nav_menu_css_class' , 'special_nav_class' , 10 , 2);
function special_nav_class($classes, $item){
if(in_array('current_page_parent', $classes)){
$classes[] = 'active ';
}
return $classes;
}
このコードでは、liにclass activeが追加されませんでした。誰がコードに間違っているのかを知っていますか?それとも、コードに追加する必要があるのでしょうか?
私はこれをしようとした場合、私はあなたがだけWalker_Nav_Menu
ことではなく、使用する機能によって呼び出されているnav_menu_css_class
フックをフィルタリングしている間、あなたはwp_list_pages()
機能を使用している。この出力
<ul class="memenu skyblue">
<li class="active"><a href="index.php">Home</a></li>
<li class="page_item page-item-2 current_page_item"><a href="#">About</a></li>
<li class="page_item page-item-13"><a href="#">Contact</a></li>
コードに問題がありますか? –
それは働いていない、私は質問を編集します –
明らかにこのコードには、あなたの問題は、その不完全されていない場合は、より多くあります。関数special_nav_classを宣言しますが、どこでも実行されていません。 – Chris