HTMLサイトからWordPressへ

長く継続しているWEBサイトの多くはHTMLで作られたサイトだと思いますが
(うちのママポケットもそうです)

いざ、wordpressでリニューアルしようとすると、基本的にページのURLの最後、拡張子がhtmlでなくなるので
特にボリュームの多いサイトは、リダイレクトが大変なので、パーマリンクをhtmlに変更する必要があります。

SEO的な観点から、html有と無しでは違うページという判断をGoogleがするからです。
長く運営しているサイトこそ、過去の実績を引き継いでリニューアルしないと、順位変動に大きくかかわります。

さて、では、どうやって、Wordpressのパーマリンクを×××.htmlにするのか?
一般投稿については、[設定]→[パーマリンク設定]→[カスタム]で

/%postname%.html

などに設定すればOKですが、

これは、投稿記事にしか反映されません。
固定ページの末尾にhtmlを付けるには、fonction.phpに下記の追加が必要です。

/*固定ページのパーマリンクの拡張子を .html にする */
add_action( ‘init’, ‘mytheme_init’ );
if ( ! function_exists( ‘mytheme_init’ ) ) {
function mytheme_init() {
global $wp_rewrite;
$wp_rewrite->use_trailing_slashes = false;
$wp_rewrite->page_structure = $wp_rewrite->root . ‘%pagename%.html’;
// flush_rewrite_rules( false );
}
}

ただし、function.phpに追記した場合、テーマのアップデートの際には元に戻ってしまうので
毎回、編集が必要になってしまうため、子テーマを使って、子テーマ内function.phpに追記しておくのがよいでしょう。

あるいは、php追加専用のプラグイン「PHP code snippets (Insert PHP)」や「Code Snippets」などを使って記述しておくと
テーマのアップデートに影響を受けないし、phpの追記の確認や整理しやすいです。

単純に、固定ページにhtmlを付与するプラグインでは、

.html on PAGES

Custom Permalinks

などがあります。

時代が変わったので、htmlで終わるサイトの方が少なくなったとは思いますが、リニューアルでリダイレクトの嵐で、場合によっては記述ミスで無限リダイレクトになってしまい
サイトがダウンすることもあるので、そんなリスクを避けるための「自分用メモ」でした。

2023年1月 再対応

wordpressのサイトヘルスで「パーマリンクをフラッシュ」・・・と出るので
.htmlをやめて、ごくごく普通のwordpressらしいパーマリンクに変更することで、アラートは解消された。

のはいいのだが、ずっと.html表示だったURLを301リダイレクトで
.html無しのURLに飛ばさないといけない。

.htacsessに追記したリダイレクトの記述。

RewriteCond %{THE_REQUEST} \.(php|html)\ HTTP
RewriteRule ^(.*)\.(php|html)$ /$1 [R=301,L]