こんにちは!ウェブサバイバー運営の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でした!