WordPressデフォルトテーマの「theme.json」をPHPで編集できるツール「HA Theme Json Changer」

WordPressデフォルトテーマの「theme.json」をPHPで編集できるツール「HA Theme Json Changer」

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

WordPressデフォルトのブロックテーマである「Twenty Twenty-Two(TT2)」「Twenty Twenty-Three(TT3)」には、「theme.json」というサイトの基本的なスタイルを指定するファイルが同梱されています。

これを直接編集、または、子テーマへコピーして編集することで、ブロックエディター上で、例えば文字の大きさを指定するボタンなどをクリックした際のスタイルを一括して変えることができる便利な機能ではあるのですが、個人的には以下のような使いにくさがありました。

  • .json形式のファイルの操作に慣れていない(エラーなどが出てうまく適用されない時がある)
  • 親テーマの「theme.json」を編集するとテーマ更新時に上書きされてしまうので、子テーマの使用は必須となってしまう
  • 「.json」形式のファイルはコメントが残せないので内容がわかりにくい
  • 「theme.json」ではなく、サイトエディターのグローバルスタイルで編集すると、そのままの環境で他のサイトへの移行が難しい(テーマごと移植となるので使いにくい)

これらを解消するため、プラグインエディター上から「theme.json」ファイルをPHPファイルとして編集できるようにしたのが、「HA Theme Json Changer」です。

通常のプラグインと同様、プラグインとしてインストール&有効化して使用します。「ツール」としたのは、環境を提供しているだけで特別な設定画面等を持たないからです

使用するメリットとデメリット

本プラグインは私の持つ複数のサイトで、子テーマを使わずに「theme.json」の設定を使いまわせないか?という発想から生まれた至って個人的な使用を目的としたプラグイン(ツール)ですので、以下のようなメリット・デメリットがあります。

「HA Theme Json Changer」使用のメリット

本プラグインを使用するメリットは、前述した不都合を以下のように解消できるところにあります。

  • プラグインとして動作するので、子テーマを使用する必要がない
  • 親テーマへ行った「theme.json」の内容がテーマ更新によって消失することがない
  • プラグインを無効にすれば、即座にデフォルトの設定に戻る
  • プラグインを移行することで、同じテーマを使用する他のサイトにも簡単に流用できる

「HA Theme Json Changer」使用のデメリット

本プラグインを使用するデメリットとしては、以下のようなことが考えられます。

  • 「theme.json」のすべてのデフォルト設定を上書きするというプロセスが加わるため、表示速度に影響が出る可能性がある
  • サイトエディターやブロックでの設定が優先されるため、本プラグインを使用して編集しても、内容が適用されない(実際はエディター上で上書きされている)と感じて混乱することがある

「HA Theme Json Changer」のダウンロード

「theme.json」ファイルは、テーマによって全く別物なので、ここではWordPressのデフォルトテーマである(あった)「TT2」「TT3」のそれぞれに対応するツールとして以下からダウンロードいただけるようにしています。

「Twenty Twenty-Two(TT2)」テーマ用のツール

累計ダウンロード数:31回

「Twenty Twenty-Three(TT3)」テーマ用のツール

累計ダウンロード数:30回

「Twenty Twenty-Four(TT4)」テーマ用のツール

累計ダウンロード数:34回

「HA Theme Json Changer」の使い方

通常のプラグインと同様、上のボタンから目的のツールをダウンロードしたら、プラグインの新規追加からファイルをアップロードしてインストールします。

インストールしてもどこにも設定画面はありません。編集は「ツール」→「プラグインファイルエディター」を開き、右上のプラグイン一覧プルダウンから「HA 〇〇 Theme Json Changer」から行います(〇〇はTT2、TT3..で異なります)。

プラグインファイル・フォルダ構造は以下のようになっています。

  • ha-xx-theme-json-changer.php
  • custom
    • change-setting.php
    • change-style.php
    • change-template.php
    • change-templateparts.php
  • default
    • change-setting.php
    • change-style.php
    • change-template.php
    • change-templateparts.php
  • languages(編集画面からは見えません)

「custom」フォルダー内には、「theme.json」ファイルの中身を大分類である「setting」「style」「template」「templateparts」に分割したファイルを追加しています。

それぞれのファイルでは、デフォルトのjsonコードをPHP化したものを、「wp_theme_json_data_theme」フックで上書きするプログラムが書かれています。

それぞれのファイルで変更が必要な部分を編集して保存すれば、テーマの「theme.json」が上書きされるという仕組みになっています。

json形式のファイルとは違い、コード中に「//」を入れればコメント化されるので、メモを残したり、元のコードをコピーしてコメント化しておくこともできます

すべてデフォルトのコードのままなので、何も加工しなければ、何も変更はされません。また、プラグインを無効にすれば、すべての設定がデフォルト(テーマ内の「theme.json」)の設定に戻ります。

また、「defaut」フォルダにそれぞれのファイルの元の状態のもののコピーを入れています。一旦元に戻したいという場合にはこれらのファイルを「custom」フォルダ内の同名ファイルへ上書きすれば完全に元に戻ります。

追加設定が必要な項目があれば自由に追加すれば、「theme.json」と同様に追加した内容が適用されますが、デフォルトに記述してあるのと同じ項目を削除した場合には、「theme.json」の値がそのまま適用される点にご注意ください

他のサイトで流用するときは

このプラグインは設定情報を持たないので、データベースには何も書き込みませんので、同じテーマを使用する他サイトへ流用する際には、プラグインフォルダごとコピーして、流用先のサイトでプラグインを有効化すれば適用されます。

前述しましたが、テーマによって「theme.json」ファイルの内容が異なりますので、「TT2」用のプラグインの場合は「TT2」テーマを有効化しているサイトに限って適用されます。

使用上の注意点

本プラグインを使用するにあたっての留意事項です。

グローバルスタイルや、ブロックごとのスタイルが優先されます

「theme.json」はサイトのスタイルを指定する一番基礎となる設定です。

サイトエディター上のグローバルスタイルや各ブロックの設定で行ったスタイルの変更や、投稿編集画面で行うスタイルの変更などは「theme.json」を上書きしますので、それらを使ってサイトのスタイルをカスタマイズしている場合には適用されません(それらのスタイルを削除すれば、本プラグインで行った編集内容が適用されます)。

書かれている行の削除はしないでください

使い方でも紹介していますが、本プラグインは、プラグインから「theme.json」を上書きするためのものであり、記述していない項目については「theme.json」の項目がそのまま適用されます。

つまり、この設定は必要ないからと、行を削除しても、もともとある「theme.json」の内容が適用されるため、削除したのに変更されないという状況が発生します。

必要ない行、例えば文字サイズが必要ないという場合には、「”fontSize”=> “〇〇”」と書かれている行を「”fontSize”=> “unset”」または「”fontSize”=> “inherit”」などにすることで、設定を無効にできます

「HA Theme Json Changer」利用規約

「HA Theme Json Changer」(以下「本プラグイン」)の利用規約です。

本規約は現在に定めたもので、予告なく変更することがあります。

プラグインの動作環境

本プラグインは現在、以下の環境でのみ動作チェックを行っています。環境が異なる場合には、正常に動作しなかったり、エラーが出たりすることがあります。

本プラグインの有効化や使用中にエラーが発生し、サイトの動作停止などの不具合が起こっても、当方では一切責任を負いませんので、了承の上使用ください

項目環境
サーバーカラフルボックス ColorfulBox Box2プラン
PHPバージョンPHP 7.4 および 8.0
WordPressバージョン6.3.1
テーマTwenty Twenty-Two または Twenty Twenty-Three
プラグインこちらを参照ください

プラグインの更新等について

本プラグインはWordPressの公式サイトで配布されているプラグインではありません。

プログラムソースは特にセキュリティ上で懸念のあるものは存在しませんし、懸念のある機能もありませんが、不安な場合には使用をお控えください。

本プラグインの更新は、当サイト内の投稿にてお知らせします。プラグインの一覧等で自動通知されませんのでご注意ください。

本プラグインは、私が単独(個人)で作成・メンテナンスを行っています。本プラグインの制作者である私に万が一のことがあった場合、または、本プラグインに致命的な欠陥が見つかり、修正が困難となった場合などには、予告なく配布・更新の停止をすることがあります。

本プラグインのインストール、有効化、使用時に起こった貴サイトでの不具合や不都合に関しては補償等一切いたしません。

再配布や再販について

本プラグインの全ファイルは、GPL(GNU General Public License)が適用されますので、コードの改変や部分的な使用等を制限することはありませんが、再配布や販売等をする場合には以下を遵守いただく必要があります。

  • プラグイン名、作者、不具合発生時の連絡先等の情報は必ず自身のものへ変更すること
  • コード中のユーザー定義関数名、変数名等は必ず自身のものへ変更すること
  • 再配布・販売をしたプラグインについては、一切の責任を配布・販売者本人が負うこと

本プラグインは、私自身が管理を行うサイト向けに作成したプラグインを配布しているものです。したがって、機能のリクエスト、改善提案、不具合対応の連絡は原則受け付けておりません。