自分のためのメモ

single.phpでもカテゴリーにカレントクラスをつけたい

ウィジェットを利用して投稿カテゴリーを表示するのに、
sidebar.phpなどを複数のテンプレートで読み込んでいると、
archive.phpではデフォルトでcurrent-catクラスが付与されるが、
single.phpではクラスが付与されない。

装飾などの兼ね合いで詳細ページでもcurrent-catを付けたい場合は

<?php  dynamic_sidebar('side_category');  ?>

<?php if ( is_single() ): ?>
    <?php
        $category_id = $categories[0]->cat_ID;
        $category_class = 'cat-item-' . $category_id;
    ?>
    <script>
        var cc = '<?php echo $category_class; ?>';
        // console.log(cc);
        var targetElement = document.getElementsByClassName(cc);
        // console.log(targetElement);
        targetElement[0].classList.add("current-cat");
    </script>
<?php endif; ?>

とすると、クラスが付与された。

簡易にまとめると
phpで取得したカテゴリーIDをjs側で受け取ってクラス付与という流れ。