例えば月別・年別ページで、URLに/date/を表示できないといった問題に直面したことはないでしょうか。
今回は、URLを自由に操作する方法についてご紹介します。

URLに/date/を挿入する方法

php

<?php 
$args = array(
  'type' => 'yearly', // 種類を指定。
  'post_type' => 'news', // カスタム投稿タイプを指定。
  'echo' => false, // 値を出力するではなく、取得する。
                   // →str_replace関数で情報を更新するため。
);

// パーマリンクの変更(/date/を挿入)
$yearly_list = wp_get_archives($args);
$yearly_list = str_replace('/news/','/news/date/', $yearly_list);
echo $yearly_list;
?>

wp_get_archivesのパラメータ設定

月別・年別のアーカイブページへのリンク一覧を表示する際はwp_get_archives関数を使用します。

echofalseに設定することで、wp_get_archivesで値を出力するのを無効化します。
取得した値を使って、次に紹介する関数でURLを調整することができます。

str_replace関数

str_replaceは、検索文字列に一致したすべての文字列を置換することができる関数です。
この関数を使うことで、URLに/date/を挿入することができます。

str_replaceの詳細はPHPの公式サイトをご覧ください。

まとめ

URLを変更したい時の選択肢として、str_replaceは非常に有効です。
ぜひ使えるようにしましょう。