カスタム投稿タイプの一覧を、サイドバーなどに出力した場合、
勝手にはactiveがつかないので、現在のページがサイドバーのどれかの目印がつけられない。
そこで、アクティブが付くバージョン。
<?php $current_page_id = $wp_query->get_queried_object_id(); $args = array( 'posts_per_page' => -1, 'post_type' => 'schools', //postは通常の投稿機能 'post_status' => 'publish', 'orderby' => 'date', //ソートの基準 'order' => 'ASC' //DESC降順 ASC昇順 ); $my_posts = get_posts($args); ?> <?php foreach ($my_posts as $post): setup_postdata($post); ?> <li class="<?php if ($current_page_id == $post->ID ) {echo 'active';} ?>"> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> </li> <?php endforeach; ?> <?php wp_reset_postdata(); ?>
肝は
$current_page_id = $wp_query->get_queried_object_id();
これと
<li class=”<?php if ($current_page_id == $post->ID ) {echo ‘active’;} ?>”>
この二行です。
現在のページidが、一覧表示されている投稿のidと一致したらactiveをecho。
コメント