前提・実現したいこと
固定ページにはパーマリンクに拡張子を付けられないため
いままで「.html on PAGES」というプラグインを使って
固定ページの拡張子に「html」を付けていました。
ですがもう10年も更新されていないプラグインですし、
可能であれば削除したいと思い別の方法を探しておりました。
そこでプラグインを使わずに「functions.php」へコードを追加し
固定ページの拡張子に「html」が付けられる設定ができるか試してみることにしました。
いくつかのサイトを参考にしてコードを書き加えてみたのですが、
「404 Not Found」エラーになり固定ページが表示されなくなってしまいます。
- 書き込むコードが間違っているのか
- 書き込む場所が間違っているのか
もし原因がわかる方がいらっしゃれば
なにかご助言いただけますと幸いです。
何卒よろしくお願い申し上げます。
発生している問題・エラーメッセージ
プラグインを停止し「functions.php」へコードを追加
パーマリンク設定で「変更を保存」後に更新すると
固定ページに以下のエラーが発生しました。
「404 not found」 「お探しのページは見つかりませんでした」
該当のソースコード
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 ); } }
試したこと
コードを入れる箇所を変えたりしてみました。
まず1回目がこちら↓
Cocoon Child: テーマのための関数 (functions.php)の原型
<?php //子テーマ用関数 if ( !defined( 'ABSPATH' ) ) exit; //子テーマ用のビジュアルエディタースタイルを適用 add_editor_style(); //以下に子テーマ用の関数を書く
こちらの一番下に、前述したコードをそのまま書き加えました。
<?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」になってしまったため、
コードを書く場所が間違っていたのかもしれないと思い
2回目は「add_editor_style();」の真下に記述しました。
<?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.1 **
使用テーマは Cocoon Child
パーマリンク設定は以下のようになっています。
WordPress>設定>パーマリンク設定>カスタム構造
◎カスタム構造 https://ドメイン.com **/%post_id%.html**
回答1件
あなたの回答
tips
プレビュー