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
を利用することで、任意のスラッグに変更可能です。変更後は必ずパーマリンク設定を再保存してリライトルールを更新してください。これにより、サイトの構造をより柔軟にコントロールできるようになります。