1. 1. WordPressテーマカスタマイザーの概要
  2. 2. WordPressテーマカスタマイザーの操作
  3. 3. WordPressテーマカスタマイザボイラープレート
  4. 4. 現在読んでいる: WordPressテーマカスタマイザボイラープレートの拡張
  5. 5. テーマカスタマイザのボイラープレート–条件付きオプション、子テーマおよびプラグイン

テーマカスタマイザシリーズのパート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テーマカスタマイザのボイラープレートがフックを介して拡張可能になったので、「条件付きテーマオプション」を追加してみます。これは、特定のプラグインがアクティブである場合にのみ表示され、テーマカスタマイザ画面を整理するのに役立ちます。.

これまでのカスタマイザボイラープレートについてどう思いますか?テーマで使うつもりですか?それをどのように改善できるかについてのアイデアはありますか?あなたのフィードバックはいつでも歓迎です.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me