長く継続している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]