WordPressの投稿・固定ページの拡張子にphp(html)をつける方法

WordPress

WordPressのURLは初期設定のままであれば、https://abc.com?p=123や、パーマリンクの設定で数字ベースを選べばhttps://abc.com/archives/123、日付と投稿名を選べばhttps://abc.com/2018/12/16/sample-post/のように、拡張子は付きません。

拡張子というのは、index.htmlやindex.phpといった、htmlやphpの部分です。

最初からWordPressで運営しているサイトであれば、このようなURLの型を気にする必要はありませんが、例えば手打ちで制作していたサイトの拡張子がhtmlやphpだった場合、Wordpressに引っ越して運営する場合には、URLを合わさなければSEO上不利になってしまいます。

不利な理由はURLが変わってしまうと、ブックマークしてくれていた人が探せなくなったり、せっかく被リンクがついていても無効になってしまったり様々な理由があり非常にもったいないですよね。

301リダイレクトで対応するという手もありますが、100%引き継ぎたいのであれば、URLをまったく同じURLにしておくべきです。

こっちのほうがロスが少ない。

という訳で、今回は投稿、固定ページの拡張子にphpもしくはhtmlを付ける方法です。

スポンサーリンク

投稿ぺージの拡張子をphp(html)にする

投稿ページの拡張子をphp(html)にする方法は『設定』⇒『パーマリンク設定』「カスタム構造」を選んで「/%category%/%postname%.php」といれるだけです。

htmlの場合は「/%category%/%postname%.html」

これでhttps://abc.com/カテゴリー/任意の文字列.php(html)というURLに変わります。

カテゴリーで分けていない記事は個別記事で対応する予定なのでこの形にしましたが、カテゴリーがいらない場合は、「/%postname%.php」とすればOKです。

※htmlの場合も、phpをhtmlに変えるだけです。

https://abc.com/カテゴリー/任意の文字列.phpにする場合

/%category%/%postname%.php

https://abc.com/任意の文字列.phpにする場合

/%postname%.php

https://abc.com/カテゴリー/任意の文字列.htmlにする場合

/%category%/%postname%.html

https://abc.com/任意の文字列.htmlにする場合

/%postname%.html

カスタム構造なので、どのようなURLも可能です。

固定ページの拡張子をphpにする

固定ページのURLはパーマリンクでは設定できませんので、functions.phpにこのコードを記述し上書きします。

function custom_page() {
global $wp_rewrite;
$wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.php';
$wp_rewrite->use_trailing_slashes = false;
}
add_action( 'init', 'custom_page' );

※functions.phpをいじる場合は子テーマであっても必ずバックアップを取りましょう。

functions.phpを上書きしたら、『設定』⇒『パーマリンク設定』で何も設定せずに「変更を保存」を押します。

※繰り返しますがパーマリンク設定は何も設定しなくてOKです。

これで反映されるはずです。

拡張子をhtmlにする場合

function custom_page() {
global $wp_rewrite;
$wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html';
$wp_rewrite->use_trailing_slashes = false;
}
add_action( 'init', 'custom_page' );

※htmlの場合も、phpをhtmlに変えるだけです。

コメント