カスタマイザーの起動時間について
カスタマイザーの起動時間について調べていたところ、海外サイトで、「theme_mod」と「option」でカスタマイザーの起動時間が倍違うという書き込みを見つけました。
ローカル環境での動作検証
Silentテーマを使い、すべてを「theme_mod / get_theme_mod()」にした場合と、すべてを「option / get_option()」にした場合で、動作検証をしてみました。結果は、海外サイトの情報通り約2倍の違いがありました。
カスタマイザーのコード例
$wp_customize->add_setting( 'silent_theme_color', array(
'type' => 'option', // theme_mod
'default' => '#22a4e5',
'sanitize_callback' => 'sanitize_hex_color',
) );
すべてを「theme_mod / get_theme_mod()」にした場合
- カスタマイザーの起動時間に約15秒かかりました。
- 子テーマ使用時、カスタマイザーの設定がリセットされます。※再設定が必要の意味です。
- 接頭辞がつけられ、データベースにまとめて保存されます。
すべてを「option / get_option()」にした場合
- カスタマイザーの起動時間に約8秒かかりました。
- 子テーマ使用時、カスタマイザーの設定がリセットされません。※再設定が不要の意味です。
- データベースにそれぞれ保存されます。
「theme_mod」と「option」について
公式サイトの情報では、テーマに「option」を使うケースはまれで、「theme_mod」の使用が一般的とありました。海外サイトでは、「theme_mod」を使うべきだという意見や、好きな方を使えば良いという意見もありました。「theme_mod」は「option」のラッパーで、処理が増える分、起動時間も増えるそうです。