すみません、私もまったく同じ内容でずっと困っております。。
下記のサイトに解決しそうな記述がありますが、特定カテゴリの月別アーカイブを表示するという解決になっていない気がします。
https://teratail.com/questions/55664
↓このような記述ではだめなようです。
「and post_type = ‘post’ and slug = ‘column’」
どなたかご教授のほど、よろしくお願いいたします。
http://kitaney-wordpress.blogspot.jp/2016/12/wordpress.html
に作ってみましたので参考にして試してみてはどうかと思います。
なお
<a href="<?php bloginfo('url') ?>/date/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"> <span class="archive-month"><?php echo date("n月", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span>
の部分については手持ちでは
<a href="<?php bloginfo('url') ?>/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"> <span class="archive-month"><?php echo date("n月", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span>
に修正しています。 /date/ を / ですね。ここは設定がそれぞれ違うと思いますので、適当に加味して修正してください。
コードも貼っておきますね。こちらのほうがコードのコピーが容易だと思いますので
<?php // カテゴリーなし(slug名)のみの月別アーカイブ表示
$year_prev = null;
$slug = 'カテゴリーなし';
// 日本語のエンコード処理
$slug = urlencode($slug);
// エンコードした場合、%が入る。SQLでは %は %% とエスケープが必要
if(preg_match("/%/", $slug)):
$slug = str_replace('%','%%', $slug);
endif;
$query = $wpdb->prepare("SELECT DISTINCT MONTH( post_date ) AS month ,
YEAR( post_date ) AS year,
COUNT( id ) as post_count FROM $wpdb->posts
WHERE post_status = 'publish' and post_date <= now( )
and post_type = 'post'
and id IN(
SELECT object_id FROM wp_term_relationships
WHERE term_taxonomy_id = (
SELECT term_taxonomy_id FROM wp_term_taxonomy AS tt
INNER JOIN wp_terms AS tm ON tt.term_id = tm.term_id
WHERE tm.slug = '%s'
)
)
GROUP BY month , year
ORDER BY post_date DESC",$slug);
$months = $wpdb->get_results($query);
foreach($months as $month) :
$year_current = $month->year;
if ($year_current != $year_prev){
if ($year_prev != null){?>
</ul>
<?php } ?>
<h3><?php echo $month->year; ?></h3>
<ul class="archive-list">
<?php } ?>
<li>
<a href="<?php bloginfo('url') ?>/date/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"> <span class="archive-month"><?php echo date("n月", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span> </a>
</li>
<?php $year_prev = $year_current;
endforeach; ?>
</ul>
<a href="<?php bloginfo('url') ?>/date/<?php echo $month->year; ?>/<?php echo date("m", mktime(0, 0, 0, $month->month, 1, $month->year)) ?>"><span class="archive-month"><?php echo date("n月", mktime(0, 0, 0, $month->month, 1, $month->year)) ?></span></a>
この部分にカテゴリーの絞り込みのクエリー文字列がいるんじゃないでしょうか。
検索結果は日別とカテゴリーで絞り込まれていますが、リンク先ではどうなんでしょう。
その月に該当するカテゴリーしかなければ問題ないと思いますが、
仮に、2015年の10月に希望のカテゴリーと別のカテゴリがあれば、リンク先では両方のカテゴリーを表示することにならないんでしょうか。
標準ならsite_url/?year=2015&monthnum=10&cat=11というURLが出力できれば、
スレ主の希望どおりになるんでしょうか。
追伸
date/year/monthはカスタムパーマリンクになるんですかね。