web-dev-qa-db-ja.com

モジュラーテーマ設定

モジュラーテーマの一連の設定を保存するための最良の方法についてのアドバイスを探しています。

注意します:

  • 設定はユーザー側にはなりません(カスタマイザAPIには適していません)。
  • 理想的には、オプションは(パフォーマンスのために)静的であるため、データベースに格納されません。
  • テーマは公開されていません、それは複数のサイトのためのフレームワークとして使用されます。

データベースを使用しているadd_option/get_optionを破棄しました。get_theme_mod/set_theme_modも同様です。

現在グローバルスコープの配列を使用しています - これは理想的ではありません(私が読んだものから)。

他に何か考え/提案はありますか?

5
addedlovely

ユーザーがそれらを変更できない場合、それらはオプションではなく、それらは定数です。あなたのメインテーマファイルでconstを使って宣言し(おそらくfunctions.phpだが常にロードされている他のどのファイルもそうするだろう)、そして現在 "options"配列を使っているところならどこでもそれらを使う。

テーマファイルを編集せずにコントロールしたい場合は、代わりに条件付きdefineを使用することができます(valueがまだ定義されていないか、定義されていないかを確認してください)。そうすれば、サイトごとにwp-config.phpファイルでそれらを定義することによって、デフォルト値をオーバーライドすることができます。

...しかし、この質問はすべて間違っているようです。 DBがあるので、それを使うだけで、オプションを制御するための基本的なUIを思いつくのは簡単です。モジュールを有効化/無効化するたびにコードを変更しなければならないという本当の理由はありません。

3
Mark Kaplun

最初のピック

データベースのオプションは最初から無視しません。theme_modsはテーマに依存するため、最初の選択になります。

パフォーマンスとして、wpオプションは自動ロードされ、それらはWordPressが中心に持っている永続的キャッシュシステムを利用します( wp_cache_get でそれを実際に見ることができます)。それらはグローバルオブジェクトと同じくらい良いです。

セカンドピック

これらの設定がほとんど静的で(めったに変更されない場合)、オプションとしてこれらの設定を保存しないことが理由である可能性があり、それらはテーマのどのモジュール/部分をロードするかどうかを定義するだけです。

この場合、config.jsonファイルを探します。このファイルには file_get_content をロードする必要があります。このようにして、フレームワークでデフォルトの設定(config.example.jsonのようなもの)を定義し、それをあなたのウェブサイトにコピー&ペーストすることができます。

2
Andrei