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の初期化プロセス中に実行されます。