こんにちは!ウェブサバイバー運営のYeah-Manです!さて今回はWordPressでカスタム投稿のアーカイブを作成していた際、2カラムレイアウトでサイドバーを実装したのですが、そこに年別アーカイブのリンクをwp_get_archives()で埋め込んだ際、リンク先のURLがおかしかったため、無理くり解決した時の方法についてご紹介します!よいこのみんなはちゃんと検証しましょう!

事案:URL構造が『/カスタム投稿タイプ名/date/2021/』にならない

事案としてはタイトルのような現象が発生し、困ったということなんですが、、、これ、なんでなんでしょうね。
パーマリンクの更新やカスタム投稿タイプでのアーカイブ設定など一通り見直してみたものの、解決に至らず。
残りの可能性としては随所でWP_Queryを使っていたので『wp_reset_postdata()の記述忘れてるかな?』くらいで、これを探しに行くのはちょっと時間かかるし、間に合わなんなといった状況でした(言い訳。。。)

解決法:str_replaceで置換する

ではどうしたかというとちょっと強引ですが、wp_get_archives()で出力されるURL文字列をstr_replaceで置換しましたw

以下がコードです。
時間がない方で『取り急ぎ対応したい!』という方はどうぞご利用ください!


$year_lists = wp_get_archives(array(
		'type' => 'yearly',
		'format' => 'html',
		'post_type' => 'blog', //カスタム投稿名を入力してください。
		'show_post_count' => false,
		'echo' => 0
	));
	if ($year_lists) {
		echo str_replace("/blog/","/blog/date/",$year_lists);
	}

頑張れば色々できるものですね!以上Yeah-Manでした!