テーマカスタマイザシリーズのパート3では、テーマカスタマイザボイラープレートを紹介しました。これにより、テーマオプションを処理するコードを簡略化できます。オプションフィールドの配列を渡すだけで、ボイラープレートがテーマカスタマイザのセクション、設定、およびコントロールの登録をバックグラウンドで処理します。.
これまで、ボイラープレートでは、テーマカスタマイザでテキストフィールド、チェックボックス、ラジオボタン、選択フィールドを使用できましたが、この記事ではそれを拡張する方法を示します.
注:続行する前に、GithubリポジトリからWordPressテーマカスタマイザボイラープレートの最新バージョンをダウンロードしてください。前回のチュートリアル以降、いくつかの改良を加えてきました。コードが最新であることは重要です。変更に関するその他のメモについては、以前の投稿をご覧ください。ただし、簡単に言えば、ボイラープレートをテーマフォルダーにコピーしたら、そのファイルをまったく編集する必要はありません。すべての編集は、フィルターフックとアクションフックを使用して行われます。.
テーマカスタマイザのボイラープレートへのフック
WordPressテーマカスタマイザボイラープレートには、いくつかのアクションフックとフィルタフックがあります。を使用して、テーマのfunctions.phpファイルからそれらのいずれかにフックできます。 add_action そして add_filter 機能:
- 「thsp_cbp_directory_uri」 – helpers.phpで定義されたフィルターフックにより、テーマフォルダー内のカスタマイザボイラープレートの場所を変更できます。デフォルトでは、ボイラープレートパスは次のようになります– get_template_directory_uri()。 「/ customizer-boilerplate」 –しかし、それをカスタムの場所に移動したい場合、これはあなたを助けることができるフックです.
- 「thsp_cbp_menu_link_text」 – helpers.phpで定義されているフィルターフック。メニューテキストリンクを変更できます。ボイラープレートは、WordPressダッシュボードの[外観]の下にリンクを追加し、ユーザーがテーマカスタマイザーに簡単にアクセスできるようにします。デフォルトでは、そのリンクには「テーマカスタマイザー」と表示され、「thsp_cbp_menu_link_text」フィルターフックを使用してテキストを変更できます.
- 「thsp_cbp_capability」 – helpers.phpで定義されたフィルターフック$ wp_customize-> add_settingメソッドで使用されるデフォルトの必須機能を変更できます.
- 「thsp_cbp_option」 – helpers.phpで定義されたフィルターフック。設定引数で「オプション」を使用している場合は、このフックを使用して、テーマ設定値がwp_optionsテーブルに格納されるエントリの名前を変更します。デフォルト値は「thsp_cbp_theme_options」です。これをフックして、テーマ名が含まれているものに変更してください。.
- 「thsp_cbp_options_array」 – options.phpで定義されたフィルターフック。フックして、デフォルトのオプション配列(サンプルオプションを含む)をテーマで使用されているオプションに置き換える必要があります。繰り返しますが、太字で下線を付けます。 Yそれにフックして、デフォルトのオプション配列をテーマで使用されているオプションに置き換える必要があります.
- 「thsp_cbp_custom_controls」 – custom-controls.phpで定義されたアクションフック。フックすることにより、独自のカスタムコントロールを作成できます。読み続けると、その方法の例が表示されます。.
- 「tshp_cbp_remove_sections」, 「tshp_cbp_remove_controls」 そして 「tshp_cbp_remove_settings」 – customizer.phpで定義されたフィルターフック。組み込みセクションID(またはコントロールID、または設定ID)の配列をそれらに渡して、組み込みセクション、コントロール、または設定の一部を削除できます。.
注:他の開発者がコードを拡張するためにそれらを使用できるように、私たちは拡張性と独自のフックを作成していますが、これがどれほど重要であるかを誇張することは不可能です。結局のところ、それがWordPress(コア)の仕組みです。そして、私は感謝することができませんでした ピピン そして 彼の 記事 この考えを頭の中に入れるのに十分です.
カスタムコントロール
更新されたテーマカスタマイザー(チェックアウトしたばかりですよね?)には、使用できるいくつかのコントロールがあります。テキストエリアフィールド、HTML5数値フィールド、画像フィールドです。これは、基本的にはラジオボタンのファンシーバージョンです。.
これらのカスタムコントロールはcustom-controls.phpで定義されています。ここではすべてを説明することはしませんが、1つ(HTML5数値フィールド)を見て、すべてがどのように機能するかを見てみましょう。
/ **
* input [type = number]フィールドのカスタマイザコントロールを作成します
*
* @since Theme_Customizer_Boilerplate 1.0
* /
クラスCBP_Customizer_Number_ControlはWP_Customize_Controlを拡張します{
public $ type = 'number';
public function render_content(){
エコー '';
}
}
ご覧のとおり、新しいコントロール$ typeと、テーマカスタマイザ画面にコントロールを出力するrender_content関数を定義するだけです。.
カスタマイザボイラープレートの組み込みカスタムコントロールを使用する
これは前のチュートリアルで説明した単純なフィールドと同じです。注意する必要があるのは、それぞれに使用する必要がある「タイプ」だけです。
- 数値フィールド– ‘数’
- Textareaフィールド– 「textarea」
- ラジオボタンとして機能する画像– 「images_radio」, これは、今後の無料でのこのコントロールの例です カズエラのテーマ:

これらの新しいコントロールタイプの名前がわかっていれば、簡単に追加できます。すべてのオプションを保持する配列に数値フィールドコントロールを追加する方法は次のとおりです。
/ *
* ============
* ============
*数値フィールド
* ============
* ============
* /
'new_number_field' => array(
'setting_args' => array(
'デフォルト' => '',
'タイプ' => 'オプション',
'機能' => $ thsp_cbp_capability,
'transport' => 'refresh',
),
'control_args' => array(
'ラベル' => __( '番号'、 'my_theme_textdomain'),
'type' => 'number'、// Textareaコントロール
'優先度' => 8
)
)
注:これを追加する場所がわからない場合は、このシリーズのパート3の「オプション配列を使用してカスタマイザセクション、設定、およびコントロールを追加する」セクションを確認してください。また、options.phpファイルには、カスタムコントロールのそれぞれのサンプルがあります。.
独自のカスタムコントロールを追加する
前述の「thsp_cbp_custom_controls」アクションフックに戻りましょう。
/ **
*独自のコントロールを作成できるアクションフック
* /
do_action( 'thsp_cbp_custom_controls');
これは、テーマカスタマイザーのボイラープレートファイルを変更せずに独自のカスタムコントロールを追加できる、シンプルなWordPressアクションフックです。それらを編集することを避けたいのはなぜですか?代わりにボイラープレートを使用している場合は、誰かがボイラープレートを更新するたびに、最新バージョンを取得してテーマにドロップするだけで、変更内容を失うことがありません。 WordPressコアファイルの編集とプラグインの作成、テーマの編集と子テーマの作成などを検討してください。.
独自のカスタムコントロールを追加する必要がある場合は、次のようにします。
function my_theme_add_customizer_boilerplate_control(){
/ **
*テーマカスタマイザーボイラープレートで使用するカスタムコントロールを作成します
*一意のクラスプレフィックスを使用する!
*
* @since Theme_Customizer_Boilerplate 1.0
* /
クラスCBP_Customizer_My_ControlはWP_Customize_Controlを拡張します{
public $ type = 'my_type'; // これを変える
public function render_content(){
//制御出力がここに入ります
}
}
}
add_action( 'thsp_cbp_custom_controls'、 'my_theme_add_customizer_boilerplate_control');
カスタムコントロールクラスの前に一意の名前を付けて、その名前が別のクラスと競合しないようにしてください。私は「CBP _」(カスタマイザボイラープレート)を使用しました—テーマでボイラープレートを使用しているので、テーマの名前は意味があり、うまく機能するはずです.
テーマカスタマイザー:次のステップ?
WordPressテーマカスタマイザのボイラープレートがフックを介して拡張可能になったので、「条件付きテーマオプション」を追加してみます。これは、特定のプラグインがアクティブである場合にのみ表示され、テーマカスタマイザ画面を整理するのに役立ちます。.
これまでのカスタマイザボイラープレートについてどう思いますか?テーマで使うつもりですか?それをどのように改善できるかについてのアイデアはありますか?あなたのフィードバックはいつでも歓迎です.
07.06.2020
WordPressテーマカスタマイザボイラープレートの拡張
Jeffrey Wilson チュートリアル
テーマカスタマイザシリーズのパート3では、テーマカスタマイザボイラープレートを紹介しました。これにより、テーマオプションを処理するコードを簡略化できます。オプションフィールドの配列を渡すだけで、ボイラープレートがテーマカスタマイザのセクション、設定、およびコントロールの登録をバックグラウンドで処理します。.
これまで、ボイラープレートでは、テーマカスタマイザでテキストフィールド、チェックボックス、ラジオボタン、選択フィールドを使用できましたが、この記事ではそれを拡張する方法を示します.
注:続行する前に、GithubリポジトリからWordPressテーマカスタマイザボイラープレートの最新バージョンをダウンロードしてください。前回のチュートリアル以降、いくつかの改良を加えてきました。コードが最新であることは重要です。変更に関するその他のメモについては、以前の投稿をご覧ください。ただし、簡単に言えば、ボイラープレートをテーマフォルダーにコピーしたら、そのファイルをまったく編集する必要はありません。すべての編集は、フィルターフックとアクションフックを使用して行われます。.
Contents
テーマカスタマイザのボイラープレートへのフック
WordPressテーマカスタマイザボイラープレートには、いくつかのアクションフックとフィルタフックがあります。を使用して、テーマのfunctions.phpファイルからそれらのいずれかにフックできます。 add_action そして add_filter 機能:
注:他の開発者がコードを拡張するためにそれらを使用できるように、私たちは拡張性と独自のフックを作成していますが、これがどれほど重要であるかを誇張することは不可能です。結局のところ、それがWordPress(コア)の仕組みです。そして、私は感謝することができませんでした ピピン そして 彼の 記事 この考えを頭の中に入れるのに十分です.
カスタムコントロール
更新されたテーマカスタマイザー(チェックアウトしたばかりですよね?)には、使用できるいくつかのコントロールがあります。テキストエリアフィールド、HTML5数値フィールド、画像フィールドです。これは、基本的にはラジオボタンのファンシーバージョンです。.
これらのカスタムコントロールはcustom-controls.phpで定義されています。ここではすべてを説明することはしませんが、1つ(HTML5数値フィールド)を見て、すべてがどのように機能するかを見てみましょう。
ご覧のとおり、新しいコントロール$ typeと、テーマカスタマイザ画面にコントロールを出力するrender_content関数を定義するだけです。.
カスタマイザボイラープレートの組み込みカスタムコントロールを使用する
これは前のチュートリアルで説明した単純なフィールドと同じです。注意する必要があるのは、それぞれに使用する必要がある「タイプ」だけです。
これらの新しいコントロールタイプの名前がわかっていれば、簡単に追加できます。すべてのオプションを保持する配列に数値フィールドコントロールを追加する方法は次のとおりです。
注:これを追加する場所がわからない場合は、このシリーズのパート3の「オプション配列を使用してカスタマイザセクション、設定、およびコントロールを追加する」セクションを確認してください。また、options.phpファイルには、カスタムコントロールのそれぞれのサンプルがあります。.
独自のカスタムコントロールを追加する
前述の「thsp_cbp_custom_controls」アクションフックに戻りましょう。
これは、テーマカスタマイザーのボイラープレートファイルを変更せずに独自のカスタムコントロールを追加できる、シンプルなWordPressアクションフックです。それらを編集することを避けたいのはなぜですか?代わりにボイラープレートを使用している場合は、誰かがボイラープレートを更新するたびに、最新バージョンを取得してテーマにドロップするだけで、変更内容を失うことがありません。 WordPressコアファイルの編集とプラグインの作成、テーマの編集と子テーマの作成などを検討してください。.
独自のカスタムコントロールを追加する必要がある場合は、次のようにします。
カスタムコントロールクラスの前に一意の名前を付けて、その名前が別のクラスと競合しないようにしてください。私は「CBP _」(カスタマイザボイラープレート)を使用しました—テーマでボイラープレートを使用しているので、テーマの名前は意味があり、うまく機能するはずです.
テーマカスタマイザー:次のステップ?
WordPressテーマカスタマイザのボイラープレートがフックを介して拡張可能になったので、「条件付きテーマオプション」を追加してみます。これは、特定のプラグインがアクティブである場合にのみ表示され、テーマカスタマイザ画面を整理するのに役立ちます。.
これまでのカスタマイザボイラープレートについてどう思いますか?テーマで使うつもりですか?それをどのように改善できるかについてのアイデアはありますか?あなたのフィードバックはいつでも歓迎です.