Cocoon 1.3.6より、スキン側から「Cocoon設定」のオプション値を変更できるようになりました。
この「スキン制御」機能は、スキン製作者の開発負担をできる限り軽減できるようにと実装した機能です。
Cocoon設定調整がする方法
スキン側から設定値を変更する方法は以下の3通り。
- スキンフォルダ内のfunctions.phpでPHPを書く
- スキンフォルダ内のoption.csvでCSVを書く
- スキンフォルダ内のoption.jsonでJSONを書く
これらのファイルに設定名と値を書き込むことで、スキン側から「Cocoon設定値」を制御出来るようになります。
スキン制御機能により、制御された設定値は「スキン制御」と表示され、設定が変更不能になります。
これにより、スキン作者が
この設定は変更して欲しくないな。
このスキンはこの設定で利用して欲しい。
なんて設定値があった場合、「スキン制御」を行うことで、ユーザーが変更できなくすることができます。
functions.phpでのスキン制御
スキンフォルダ内のfunctions.phpで設定値をスキン制御するには、以下を参照してください。
functions.phpでは、ほぼ何でもできるといってもいいです。
しかし自由度が高い反面、PHP文法に外れていればエラーが出るので、コーディングに慣れた人向けの設定方法です。
CSVファイルでスキン制御
スキンフォルダ内のoption.csvで、設定値をスキン制御するには以下を参照してください。
CSVファイルでの設定は、最も入力量も少なく簡単に行えます。
とりあえず、最も簡単にスキン制御行うならCSVファイルでの設定をおすすめします。
JSONファイルでスキン制御
スキンフォルダ内のoption.jsonで、設定値をスキン制御するには以下を参照してください。
JSONファイルは様々な設定ファイルに利用されています。
なので、「JSONファイルでの設定に慣れている」場合は、JSONを利用することをお勧めします。
動作サンプル
動作サンプルとして「Cocoon設定」の「スキン」タブ内に以下のデモスキンを用意してあります。
- スキンからオプション変更サンプル(PHP)
- スキンからオプション変更サンプル(CSV)
- スキンからオプション変更サンプル(JSON)
スキンから選択して実際の動作を確認してみてください。
デモスキンファイルの場所
skinsフォルダ内で言えば以下のフォルダです。
- skin-demo-php(functions.phpデモ)
- skin-demo-csv(CSVファイルデモ)
- skin-demo-json(JSONファイルデモ)
ファイルが読み込まれる順番
スキン制御機能でファイルが読み込まれる順番はこちら。
- functions.php
- option.csv
- option.json
設定値が重複していた場合は、後から読み込まれるファイルの設定値が優先されます。
ファイルの優先度
なので、「同じ設定値がある場合」の優先度で言えばこんな感じになります。
- option.json
- option.csv
- functions.php
functions.phpで書かれた設定は、option.csvで書かれた設定により上書きされ、option.jsonで書かれた設定により更に上書きされます。
同じ設定値が重複していない場合は、それぞれのファイルで書かれたものが優先されます。
ただ、複数ファイル書くと、ややこしいので、どれか1つのファイルに決めて利用した方が明快だと思います。
まとめ
こんな感じで、「Cocoon設定値を変更できるスキン制御機能」を追加しました。
このスキン制御機能を利用する利点としてはこちら。
- CSSで設定値を上書きする必要がないのでコーディング負担が減る
- スキン制御分のCSSコードサイズが削減される(AMPのCSSサイズ削減)
- スキン作者が意図したCocoon設定値で固定できる
- スキン作者がテーマ内の文字列も変更できる(Cocoon設定にあれば)
- 設定値が変更されることを考慮してCSSを書く必要がなくなる
- 設定が変更されることでスキンデザインが崩れることがない
Cocoon設定の「設定名」と「値」を調べるのは多少面倒ではありますが、「スキン制作側の負担を多少でも軽減する機能」になると思っています。