【WP】日付アーカイブにカテゴリを追加する

WordPress愛好家の遠藤です。

さて、日付アーカイブのリストは、wp_get_archivesで生成できるのはご存知の通り。

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> 
  <option value=""><?php echo esc_attr(__('Select Month')); ?></option> 
  <?php wp_get_archives( 'type=monthly&format=option&show_post_count=1' ); ?>
</select>

これに、リンク先はカテゴリーの絞り込みがされていて欲しいなぁという案件があって、何も考えなしにとりあえずcat指定してみたらきちんと動いたという・・。

<select name="archive-dropdown" onChange='document.location.href=this.options[this.selectedIndex].value;'> 
  <option value=""><?php echo esc_attr(__('Select Month')); ?></option>
  <?php
    $data = wp_get_archives( 'format=option&echo=0' );
    // パラメーターを含める
    if ( $data ) {
        $replace = "?cat=" . カテゴリーID . "'>";
        $html = str_replace( "'>", $replace, $data );
        echo $html;
    }
  ?>
</select>

クエリ変数「cat」が日付アーカイブでもきちんと拾ってくれるんですね!やってみなければ分からないの典型でした。

ただしこの方法では、その月に該当のカテゴリが存在しなくても、プルダウンには項目として表示されてしまうので、その辺りも非表示にするのであれば、pre_get_postsか何かでごにょごにょしないといけないようです。

ごにょごにょについては、機会があればまたその時に〜。