ヘヨ、
2つのページを切り替えて各ページのCustomizersettings
が異なる場合、Customizer API
に異なるTemplate
を表示することは可能ですか。
例えば、Page-1
にはテンプレートCustom-Sidebar
があり、Page-2
にはテンプレートCustom-Fullwidth
があります。 Customizer
にアクセスしてPage-1
を表示するときはSettings
に対してSidebar
を表示し、Page-2
に変更するときはImagesおよびその他のものに対してSettings
を表示しますSidebar
にはは付きません! (それが理にかなっている場合)
前もって感謝します!
カスタマイザAPIは、 control とd section の両方のクラスでactive_callback
メソッドを提供しています。基本的には、コントロールまたはセクションがユーザーに表示されるかどうかを判断するために条件付き関数またはカスタム関数を使用します。
セクションをページ専用に表示したい場合は、次のようにします。
$wp_customize->add_section( 'wpse_283821_acme_pages', array(
'title' => 'Acme Pages Section',
'description' => 'Edit the ACME Pages Sections',
'priority' => 20,
'active_callback' => 'is_page',
) );
あるいは特定のカスタム関数:
$wp_customize->add_section( 'wpse_283821_acme_special_page', array(
'title' => 'Acme Special Page Section',
'description' => 'Edit the Specific ACME Page Section',
'priority' => 20,
'active_callback' => 'wpse_283821_acme_custom_callback',
) );
wpse_283821_acme_custom_callback() {
// Do your logic here
if ( true !== $condition ){
return false;
} else {
return true;
}
}
WPSEにはいくつか質問がありますが、active_callback
の興味深い使い方を示す良い答えがあります。 this one および this one を確認してください。そして この投稿 があなたのものと同じユースケースです。
それらをここにコピーすることもできますが、もっと深く理解するためには、それらの質問、答え、コメント、そしてコードを見てみる価値があると思います。