WordPress:「今開いているカテゴリ」のカテゴリIDを取得する

<?php $catID = get_query_var('cat'); ?>

上記でエントリーページでもアーカイブページでも、「今開いているカテゴリ」のカテゴリIDを取得できます。

WordPressにはほかに「get_the_category」というカテゴリ情報を配列で取得できる関数がありますが、コレにイラついた人も多いと思います。

なぜ「今開いているカテゴリ」とやたら強調するかというと、サブカテゴリを持つ親カテゴリのアーカイブページで「get_the_category」を使った場合、親カテゴリー自身ではなく「親カテゴリからサブカテゴリも含めた最新記事のカテゴリ」の情報が取得されるので、「get_the_category」は「今開いているカテゴリ」の情報を取得するには適さないのです。

WPである程度凝ったことをやり始めると「get_query_var」でダイレクトに変数を抜いて処理する方が楽になってきます。