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