カスタム投稿タイプの一覧を、サイドバーなどに出力した場合、
勝手には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。
コメント