WordPressで構築したウェブサイトのURLを「.html」で終わるようにしたい

WordPressで構築したウェブサイトのURLを「.html」で終わるようにしたい

WordPressでウェブサイトを構築していて固定ページのURLの末尾に.htmlの拡張子をつけたくなる時ありませんか?静的なホームページの場合URLの末尾には.htmlがついています。それに見慣れてきているからかウェブサイトのURLを見たときに.htmlがついていないと何となくスッキリしないというか、落ち着かないというか…そんなときのための方法を紹介します。

目次

function.phpへの記述

//固定ページに.htmkを付与
if ( ! function_exists( 'html_addition' ) ) {
    function html_addition() {
        global $wp_rewrite;
        $wp_rewrite->use_trailing_slashes = false;
        $wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html';
        flush_rewrite_rules( false );
    }
}
add_action( 'init', 'html_addition' );

説明

上記コードはページのパーマリンク構造を変更して、URLの末尾に付くスラッシュではなく.html拡張子を使用するように設定しています。以下に、各部分が何をしているのかを説明します。

関数 html_addition が存在しないかどうかを確認
if ( ! function_exists( 'html_addition' ) ) {

関数 html_addition が既に定義されていない場合にのみ定義されるようにします。これにより、関数の再定義エラーを防ぐことができます。

関数 html_addition を定義
function html_addition() {

パーマリンク構造を変更するための関数を定義します。

グローバルな $wp_rewrite オブジェクトにアクセス
global $wp_rewrite;

$wp_rewrite オブジェクトは、WordPressのパーマリンク構造を管理するために使用されます。

トレイリングスラッシュを無効にする
$wp_rewrite->use_trailing_slashes = false;

URLの末尾にスラッシュが追加されないように設定します。

ページ構造を .html 拡張子を使用するように設定
$wp_rewrite->page_structure = $wp_rewrite->root . '%pagename%.html';

ページのURL構造が.html拡張子を含むように変更されます。

リライトルールをフラッシュ
flush_rewrite_rules( false );

データベース内のパーマリンクルールが更新されますが、現在のリライトルールは削除されません。false パラメータにより、完全な削除と再作成が防がれます。

init アクションに関数をフック
add_action( 'init', 'html_addition' );

html_addition 関数がWordPressの初期化プロセス中に実行されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次