グローバルナビで、現在地と同じURLとなる項目のaに独自のID="this"を付与したいです。
いくらかの参考サイトを拝見し、このように記載してみたのですがうまく動きません。
ご教授いただけますとうれしいです。
html
1<body <?php body_class(); ?>> 2<nav id="gnav"> 3 <ul class="menu"> 4 <li class="menu__single aaaaa"> <a href="<?php echo home_url('/'); ?>aaaaa/" class="init-bottom">aaaaa</a></li> 5 <li class="menu__single iiiii"> <a href="<?php echo home_url('/'); ?>iiiii/" class="init-bottom">iiiii</a></li> 6 <li class="menu__single uuuuu"> <a href="<?php echo home_url('/'); ?>uuuuu/" class="init-bottom">uuuuu</a></li> 7 <li class="menu__single eeeee"> <a href="<?php echo home_url('/'); ?>eeeee/" class="init-bottom">eeeee</a></li> 8 <li class="menu__single ooooo"> <a href="<?php echo home_url('/'); ?>ooooo/" class="init-bottom">ooooo</a></li> 9 </ul> 10</nav> 11</body>
現在地が //sample.com/aaaaaのとき、以下のようになっている。
html
1<body class="aaaaa"> 2<nav id="gnav"> 3 <ul class="menu"> 4 <li class="menu__single aaaaa"> <a href="<?php echo home_url('/'); ?>aaaaa/" class="init-bottom" id="this">aaaaa</a></li> 5 <li class="menu__single iiiii"> <a href="<?php echo home_url('/'); ?>iiiii/" class="init-bottom">iiiii</a></li> 6 <li class="menu__single uuuuu"> <a href="<?php echo home_url('/'); ?>uuuuu/" class="init-bottom">uuuuu</a></li> 7 <li class="menu__single eeeee"> <a href="<?php echo home_url('/'); ?>eeeee/" class="init-bottom">eeeee</a></li> 8 <li class="menu__single ooooo"> <a href="<?php echo home_url('/'); ?>ooooo/" class="init-bottom">ooooo</a></li> 9 </ul> 10</nav> 11</body>
wordpressテーマのfuction.phpに以下の記載しています。
php
1//fuction.php 2add_filter( 'body_class', 'add_page_slug_class_name' ); 3function add_page_slug_class_name( $classes ) { 4 if ( is_page() ) { 5 $page = get_post( get_the_ID() ); 6 $classes[] = $page->post_name; 7 8 $parent_id = $page->post_parent; 9 if ( 0 == $parent_id ) { 10 $classes[] = get_post($parent_id)->post_name; 11 } else { 12 $progenitor_id = array_pop( get_ancestors( $page->ID, 'page', 'post_type' ) ); 13 $classes[] = get_post($progenitor_id)->post_name; 14 } 15 } 16 return $classes; 17} 18
以下のjsを読み込んでいます。
js
1$(function(){ 2var id = $("body").attr("id"); 3$("#gnav ul li a."+id).attr('id', 'this'); 4});
みなさま、この度は検案いただき申し訳ございません。
ID付与することに固執する理由も十分でないということで
classで対応するように変更要請がありましたため
質問を終了させていただきました。
このたびは質問内容や回答方法に不備があったこと誠に申し訳ありません。
お時間を割いていただき誠にありがとうございました。
回答1件
あなたの回答
tips
プレビュー