WordPress 固定ページのパーマリンクの拡張子を .html にしたい | カスタマイズ相談 | Cocoon フォーラム

サイト内検索
書き込みの前に以下の3点をご確認ください。
  1. 1つのトピックにつき1つの質問を書き込んでください
  2. 不具合・カスタマイズ対象ページのURLを提示高速化を無効にしてください
  3. 該当部分のキャプチャ・環境情報とともに書き込んでいただけると助かります

フォーラム利用ガイドリンク

  1. フォーラムガイドライン
  2. よくある質問と答え(FAQ)
  3. サポート対象外のケース
  4. 原因不明の不具合用トラブルシューティング
  5. トピックにHTMLを貼り付ける方法(推奨ツール:notepad.pw
  6. 真っ白画面でのエラーメッセージの確認方法 
  7. ブラウザ環境チェックツール

フォーラム質問後、問題等が解決した場合は結果を書き込んでいただけると幸いです。同様の問題で調べている方には、結果が一番気になる部分となります。

また、問題の解決に至った場合には、トピック冒頭の「解決済み」リンクをクリックしていただけますと幸いです。

wpForoの解決済みリンク

また、有用な返信があった場合は「いいね!」リンクもご活用ください。返信者の励みになります。

wpForoのいいねリンク

「いいね!」機能はフォーラム登録者のみが利用できる機能です。

CC BY-ND 2.1)準じていれば(リンクを貼っていただければ)転載も自由です。カスタマイズ記事を書く際にコード等をコピペ利用していただいて構いません。

フォーラムの使い方がよくわからない場合は、テストトピックで自由にテストしていただいて構いません。

最近の書き込みはこちら。

詳細なカスタマイズ依頼をするならこちら。

フォーラムのTwitterアカウント(@CocoonForum)はこちら

スポンサーリンク
WordPress 固定ページのパーマ...
 
Share:
Notifications
Clear all

[解決済] WordPress 固定ページのパーマリンクの拡張子を .html にしたい  


aoi77
(@aoi77)
Active Member
参加: 1か月 前
投稿: 6
2020年6月18日 13:42  

初めまして、お世話になります。

 

WordPress 固定ページのパーマリンクの拡張子を

プラグインを使わずに「.html」にする方法について

 

ご相談させてくださいませ。

 

固定ページにはパーマリンクに拡張子を付けられないため
いままで「.html on PAGES」というプラグインを使って
固定ページの拡張子に「html」を付けていました。

ですがもう10年も更新されていないプラグインですし、
可能であれば削除したいと思い別の方法を探しておりました。

そこでプラグインを使わずに「functions.php」へコードを追加し
固定ページの拡張子に「html」が付けられる設定ができるか試してみることにしました。

いくつかのサイトを参考にして、

Cocoon Child: テーマのための関数 (functions.php)の↓

 

<?php //子テーマ用関数
if ( !defined( 'ABSPATH' ) ) exit;

//子テーマ用のビジュアルエディタースタイルを適用
add_editor_style();

//以下に子テーマ用の関数を書く

 

一番下に以下のコード↓を書き加えてみたのですが

 

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 );
  }
}

「404 Not Found」エラーになり

固定ページが表示されなくなってしまいます。

  • 書き込むコードが間違っているのか
  • 書き込む場所が間違っているのか

もし原因がわかる方がいらっしゃれば
なにかご助言いただけますと幸いです。

よろしくお願いいたします。

 

WordPressは最新の 5.4.2

使用テーマは Cocoon Child

パーマリンク設定は以下のようになっています。

WordPress>設定>パーマリンク設定>カスタム構造

◎カスタム構造 https://ドメイン.com/ %post_id%.html

 

 

フォーラムを利用させていただくのは初めてでして、

なにか不手際や記入漏れがあったらすみません(汗


みるみ
(@mirumi)
Reputable Memberサイト
参加: 9か月 前
投稿: 264
みるみ - Twitter
2020年6月18日 14:44  

こんにちは。

予想ですけど、

// flush_rewrite_rules( false );

の部分を一度でもコメント解除して実行してみましたでしょうか?

リライトルールはDBを更新しないと反映されないのでこの関数が必要なんですが、毎度呼び出すと負荷がかかるのでコメントアウトされて紹介されていたとかそんな感じじゃないでしょうか。

ちなみに僕の環境ではちゃんと動作しましたよ。

(それとglobal$wp_rewrite;の間にスペースがないのが気になりました。動作には影響ないと思いますが。)


わいひらaoi77 件のいいね!
aoi77
(@aoi77)
Active Member
参加: 1か月 前
投稿: 6
2020年6月18日 16:25  

みるみ様

こんにちは

早速のご助言ありがとうございます!

 

まず先に、正しいコードを貼り付けられておらず

申し訳ありません 😭 再度添付させていただきます(汗

 

 

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 );
}
}

 

>コメント解除して実行
// flush_rewrite_rules( false );

コメント解除…!? とハテナが浮かびましたが
『先頭の「//」を取り除いてみてはどうか?』
という解釈で合っているでしょうか 😥 

試しに「//」を削除→更新→固定ページの「お問い合わせ」「サイトマップ」などのURLを確認

としてみたところ、
「404 Not Found」エラーは出ずに、

きちんとページが表示されたまま
「.html」が末尾に付いておりました!!

ただ「毎度呼び出すと負荷がかかる」とのことですので、
果たして削除してもよかったのだろうか…と少し悩みますね(汗

 

 

あとコードを記述する場所についてなのですが、

テーマのための関数 (functions.php)原文↓

 

<?php //子テーマ用関数
if ( !defined( 'ABSPATH' ) ) exit;

//子テーマ用のビジュアルエディタースタイルを適用
add_editor_style();

//以下に子テーマ用の関数を書く

 

5行目「add_editor_style();」の真下の6行目に入れるべきか

7行目「//以下に子テーマ用の関数を書く」の真下の8行目に入れるべきか

というかどちらに入れるにしても「行を1行は空けた方がいいのかどうか」…?

 

など、おそらくごくごく初歩的であろう質問でお恥ずかしいのですが、

なにかアドバイスなどございましたらご教授いただけないでしょうか。

 

どうぞよろしくお願いいたします。


みるみ
(@mirumi)
Reputable Memberサイト
参加: 9か月 前
投稿: 264
みるみ - Twitter
2020年6月18日 17:17  
投稿者:: @aoi77

ただ「毎度呼び出すと負荷がかかる」とのことですので、
果たして削除してもよかったのだろうか…と少し悩みますね(汗

うまくいったようで良かったです。
一度でも実行したらもう削除しちゃっても大丈夫ですよ。「変更を反映するために」一度だけでいいからコメント解除する必要があった、ということです(URL構造を変えたいなどあったら当然もう一度呼び出す、ということですね)。

投稿者:: @aoi77

5行目「add_editor_style();」の真下の6行目に入れるべきか

7行目「//以下に子テーマ用の関数を書く」の真下の8行目に入れるべきか

というかどちらに入れるにしても「行を1行は空けた方がいいのかどうか」…?

これを質問された方にははじめてお会いしました。笑
最初は不安ですよね。

全く関係ありませんのでご自分のお好きなように追記していくといいと思います。

現実的には「機能ごとに分かりやすくまとめておく」などはあった方がいいので、例えば関数ごとに1行あけるとか、みなさんそういう風にしていると思います。

コメントで区切るともっと見やすくなりますよ。

//************固定ページのURL末尾に.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 );
}
}

という感じ!


aoi77わいひら 件のいいね!
aoi77
(@aoi77)
Active Member
参加: 1か月 前
投稿: 6
2020年6月19日 00:04  

みるみ様 

本当にありがとうございます! 😭 

投稿者:: @mirumi

一度でも実行したらもう削除しちゃっても大丈夫ですよ。「変更を反映するために」一度だけでいいからコメント解除する必要があった、ということです

そういう意味があったのですね…!

ということは、すでに実行できたということで

flush_rewrite_rules( false );

の先頭に「//」をまた付けても大丈夫そうですね 😆 

投稿者:: @mirumi

これを質問された方にははじめてお会いしました。笑
最初は不安ですよね。

全く関係ありませんのでご自分のお好きなように追記していくといいと思います。

現実的には「機能ごとに分かりやすくまとめておく」などはあった方がいいので、例えば関数ごとに1行あけるとか、みなさんそういう風にしていると思います。

行の空白が「全く関係なかった」と初めて知りました…!

文字間の「半角の空白の数」や、文毎の「行間隔の数」など、

てっきりなにかしらの規則や法則があるのだと思い込んでおりました 😱 

無知全開でお恥ずかしい限りです(泣)

コメントで区切る

なるほど、そんな使い方もできるのですね!

みるみ様のコメントを元に、コードの記述を以下のようにしてみました↓

<?php //子テーマ用関数
if ( !defined( 'ABSPATH' ) ) exit;

//子テーマ用のビジュアルエディタースタイルを適用
add_editor_style();

//以下に子テーマ用の関数を書く

//************固定ページのURL末尾に.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 );
  }
}

ドキドキしながら更新を押してみたところ、

エラーも出ず正常に表示され、URLの末尾にも「.html」が付いたまま!でした!

 

私でも理解できるくらい丁寧にご指導くださり、

本当にありがとうございました(#^^#)

またなにかあったら、どうぞよろしくお願い致しますm(__)m


わいひらみるみ 件のいいね!
Share:
スポンサーリンク
わいひらをフォローする
おすすめサーバー(コスパ・バックアップ重視型)

性能も兼ね備えながら安くブログ運営を開始できる点においてのNo.1。
それでいてブログ成長後は、十分すぎるほどのスペックアップ余力も担保されている。

◎安く始められる
◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎東京・大阪でリージョン選択が可能
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:1年11ヶ月

1年以上の契約をする場合は、クーポンコード入力でさらに10%割引(※2020/12/31まで)。

クーポンコード:PK4JK4RJ

クーポンの使用方法はこちら

とにかく速い。サイトに表示スピードを求めるならココ。
管理画面がシンプルで使いやすい。

◎nginxを用いた高速サーバー(完全SSD)
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎ディスク容量が多い
◎転送量が多い
○http/2(高速化プロトコル)に対応
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
◎ファイルも14日以内なら無料自動復旧可能
◎サーバ引っ越しツールあり(無料)
○サーバ引っ越し依頼が可能(有料)
◎ドメインとサーバー代のチャージ払いが可能

サービス運営期間:1年9ヶ月

安定感抜群のサーバーです。あまり急激なアクセス変動がないアフィリエイトサイトに向いています。

◎nginxを用いた高速サーバー(完全SSD)
◎老舗サーバーなので安定感抜群
◎ディスク容量が多い
◎転送量が多い
◎同サービス内でドメイン管理が可能
○http/2(高速化プロトコル)に対応
○毎日無料バックアップ(14日分)
○DBは7日以内なら無料自動復旧可能
×ファイルは有料かつ手動での復旧
×プラン変更でCPUのスペックアップができない
×プラン変更しても即時反映されない
×アダルト・出会い系サイト不可

サービス運営期間:16年

常に新しいことに挑戦しているフロンティア精神あふるるレンタルサーバーです。
LiteSpeedやHTTP/2を日本で初めて導入したサーバー。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎http/3(高速化プロトコル)に対応
◎プランのアップ・ダウングレードが自由自在
◎同サービス内でドメイン管理が可能
◎転送量が多い
◎ディスク容量が多い
◎毎日無料バックアップ(14日分)
◎DBは14日以内なら無料自動復旧可能
○ファイルは14日以内なら無料復旧可能(※手動)
◎アダルト・出会い系サイト可
◎ドメインとサーバー代のチャージ払いが可能
○サーバ引っ越し依頼が可能(有料)

サービス運営期間:3年

格安な値段で始められる高機能サーバーです。
性能も備えつつ最安ならここ。
ただし少し機能は弱い。

◎LiteSpeedを用いた高速サーバー(完全SSD)
◎激安プランが用意してある
◎値段あたりのスペックが高い(コスパ良し)
◎サーバ引っ越し依頼が可能(無料)
◎アダルト・出会い系サイト可
○http/2(高速化プロトコル)に対応
△プランのアップは可能だがダウンは不可
△毎日自動バックアップ(1日分)
△前日のバックアップからのみ復元できる(無料)

サービス運営期間:4年

Cocoon
タイトルとURLをコピーしました