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か何かでごにょごにょしないといけないようです。
ごにょごにょについては、機会があればまたその時に〜。