まだまだ手探りでカスタマイズを進めているTT2(Twenty Twenty-Two)テーマですが、問題が発生しました。

それは、新規作成したテンプレートが編集も削除もできなくなってしまうという現象です。

具体的には、編集して保存しようとすると、以下のように「保存に失敗しました」という赤い帯が表示されて編集を保存できず..

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

ダメなら削除とテーマエディタから削除を試みるも、以下のように「URLとリクエストメソッドに一致するルートが見つかりませんでした」と表示されて削除できず..

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

という状況です。

同様の現象が出てしまった方のために、この現象が発生する原因と、再編集・削除を可能にする方法を、自身の備忘録も兼ねて紹介しておきます。

原因はテンプレート名の文字列

テンプレートの「新規」をクリックした後で表示される以下の画面で名前が設定できるようになっていますが、問題は名前に使う文字列の種類。

どうやら日本語のようなマルチバイト文字を使うと、テンプレートの編集後の保存・削除でデータベース上のテンプレートが訪ね当たらず、エラーとなってしまうようです。

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

編集も削除もできなくなってしまったテンプレートの削除方法

そのテンプレートが使えないということだけですから、テーマエディターなどの一覧に表示されていても気にならないようでしたら、そのまま放置でいいでしょう。

ただ、きちんと?すっきり削除したい!という場合には、サイトのデータが収容されているデータベースを編集する必要があります。

データベースはWordPressを動作させる上で重要なものです。データベース?という方や、phpMyAdminを使ったデータベース編集に慣れていない方は、無理にこの措置をせず、放置されることをおすすめします。

1.サーバーのphpMyAdminを使って、データの一部を変更する

トラブルにならぬよう、分かる方だけに..という意味を込めて、ここからは詳細な説明は省いて専門用語全開で説明しますので、少しでも疑問のある方はやはり放置が望ましいでしょう。

さて、ブロックテーマ(Twenty Twenty-Twoだけなのかは不明)のテンプレートやテンプレートパーツは、なぜか投稿の保存先と同じ「posts」テーブルに保存されています。

「posts」テーブルを開いて、「post_type」列の値が「wp_template_part」になっているもののうち、「post_name」列の値が以下の図のように日本語がURLエンコードされているものが、編集・削除できないテンプレートです。

本当にそのテンプレートなのかは、「post_title」列の値が削除・編集できないテンプレートの名前になっているかで判断できます。

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

そして問題となっている「post_name」の値を以下の図のように適当なものに書き換えます。

「wp-custom-template-」の部分は残した方がよさそうです(消してテストはしていません)

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

これでデータベース側の処置は終了です。

最悪の場合WordPressが動作しなくなる可能性がありますから、間違ってもこのデータをデータベース上で削除しないでください。

2.テーマエディターで編集・削除できるかを確認

データベース上の措置が終わったら、サイトの管理画面からテーマエディターを開き、先ほどエラーとなっていたテンプレートの編集や削除を行ってみてください(削除してしまうと元に戻せないのでご注意ください)。

下図のように問題なく編集・削除ができれば処置は完了です。

【TT2】作成した投稿や固定ページのテンプレートで編集も削除もできなくなる原因と対処|Twenty Twenty-Two (TT2)のカスタマイズ情報

データベース上ではIDでいろいろなものが繋がっているので、そのままテンプレートを使い続けても問題ないとは思いますが、個人的には気持ち悪い感じがするので一旦削除して半角英数字でテンプレートを作り直した方がいいと考えます。

半角英数字でテンプレートを追加すると、テーマエディター上のテンプレート名も半角英数字になりますが、削除リンクの上の「名前変更」で日本語の名前に変更することができますから問題ないでしょう