【WordPress】標準の投稿アーカイブのパーマリンクを任意のURLにする方法

【WordPress】標準の投稿アーカイブのパーマリンクを任意のURLにする方法 WordPress

WordPress では通常、標準の投稿タイプ(post)のアーカイブページは https://example.com/blog/https://example.com/news/ のように、管理画面「設定 > パーマリンク設定」で指定した「投稿用カテゴリーベース」やテーマの仕様に依存します。しかし、標準投稿のアーカイブ URL を任意のスラッグに変更したいケースもあります。本記事ではその方法を解説します。

投稿アーカイブのURLを変更する基本

WordPress の投稿アーカイブ(投稿一覧ページ)は内部的に「post_type = post」のクエリで生成されます。これを任意のスラッグに差し替えるには register_post_type() を使い直すか、register_post_type_args フィルタを用いるのが簡潔です。

functions.phpでスラッグを変更

以下を functions.php に追記することで、投稿アーカイブのスラッグを /topics/ に変更できます。

<?php
function change_post_archive_slug( $args, $post_type ) {
    if ( 'post' === $post_type ) {
        $args['rewrite'] = array( 'slug' => 'topics' ); // 任意のスラッグ
        $args['has_archive'] = 'topics'; // アーカイブURLを /topics/ に
    }
    return $args;
}
add_filter( 'register_post_type_args', 'change_post_archive_slug', 10, 2 );

変更後の注意点

上記コードを追加後は、管理画面から「設定 > パーマリンク設定」を開いて「変更を保存」を押し、リライトルールを再生成してください。これを行わないと、新しい URL が反映されません。

特定の用途での活用例

  • 「ブログ」の代わりに「news」「topics」「column」などに変更したい場合
  • 既存のサイト構造やSEOに合わせて投稿アーカイブのURLを調整したい場合

まとめ

標準の投稿アーカイブ URL はフィルターフック register_post_type_args を利用することで、任意のスラッグに変更可能です。変更後は必ずパーマリンク設定を再保存してリライトルールを更新してください。これにより、サイトの構造をより柔軟にコントロールできるようになります。