投稿のパーマリンクだけカスタマイズ!スラッグの前に階層を入れたい!

投稿のパーマリンクに階層を追加

.

このブログの各投稿記事のURLは

https://virgil.jp/creat-template(記事スラッグ)/

このようになっています。
いえ、このようになっていました。

このパーマリンクの形式を

https://virgil.jp/blog/creat-template(記事スラッグ)/

という書式に変更することができたので、シェアします!

かずあき

YUKI.WORLDさんの記事で一発で解決しました!
Yukiさん、有益な記事をありがとうございました!!

投稿ページのパーマリンクを変更する方法

function.phpを書き換え

// 投稿ページのパーマリンクをカスタマイズ
function add_article_post_permalink( $permalink ) {
    $permalink = '/xxx' . $permalink;
    return $permalink;
}
add_filter( 'pre_post_link', 'add_article_post_permalink' );
 
function add_article_post_rewrite_rules( $post_rewrite ) {
    $return_rule = array();
    foreach ( $post_rewrite as $regex => $rewrite ) {
        $return_rule['xxx/' . $regex] = $rewrite;
    }
    return $return_rule;
}
add_filter( 'post_rewrite_rules', 'add_article_post_rewrite_rules' );

このコードを、WordPressテーマフォルダ内のfunction.phpにそのままコピーして貼り付けます。

かずあき

xxx」の部分を、スラッグの前につけたい任意の文字に変更してください!

コードをfunctionに書き加えて保存

function.phpの編集画面で「ファイルを更新」を押した時点で、過去に投稿した「投稿ページだけ」のURLが下記のように書き変わります。

パーマリンクにblogが追加された

パーマリンク設定の変更

WordPress管理画面>設定>パーマリンク設定へ進み、何も変更せずに「変更を保存」をクリックしましょう。

この作業をしないと、ブログの記事投稿ページから記事ページにアクセスできなくなります!

かずあき
かずあき

気になる部分の検証

  • 変更されるのは投稿ページだけ!
    固定ページは変更されません。
  • 今後新しく投稿する記事にも適応されます!
    これも投稿ページだけに適応されます。
  • function.phpに書き込んだコードを削除すると、URLは元に戻ります。
  • 過去に投稿したページは404エラーになります。
    必要な場合はプラグインなどで対応を!
かずあき

過去記事は「ページが見つかりません」になる
投稿数が少ない状態での変更をオススメします!
内部リンクの書き換えは数が増えるほど大変です…!

  • URLをコピーしました!