カスタム投稿時、wp_list_pages() のアクティブページに current_page_item のクラスを付与する
WordPressのテンプレートタグ wp_list_pages() は、
ページタイトルの一覧を表示させ、アクティブページ(現在表示しているページ)があれば自動的に class=”current_page_item” を追加する機能が付いています。
ところが、カスタム投稿では、この class=”current_page_item” がつきません。
そこでカスタム投稿でも class=”current_page_item” を付与する方法をご紹介いたします。
方法は下記コードを functions.php に記述します。
また親ページのリンクにも class=”current_page_parent” が付与されるという便利さです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | // カスタム投稿時、wp_list_pages() に current_page_item を付与 function kct_page_css_class( $css_class, $page, $depth, $args, $current_page ) { if ( !isset($args['post_type']) || !is_singular($args['post_type']) ) return $css_class; global $post; $current_page = $post->ID; $_current_page = $post; _get_post_ancestors($_current_page); if ( isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors) ) $css_class[] = 'current_page_ancestor'; if ( $page->ID == $current_page ) $css_class[] = 'current_page_item'; elseif ( $_current_page && $page->ID == $_current_page->post_parent ) $css_class[] = 'current_page_parent'; return $css_class; } add_filter( 'page_css_class', 'kct_page_css_class', 10, 5 ); |
動作環境: WordPress 3.4.2
参考サイト: http://wordpress.stackexchange.com/questions/6333/adding-class-current-page-item-for-custom-post-type-menu