フォーラムへの返信
-
投稿者投稿
-
ありがとうございます!!
分岐も問題なく動かすことができました!!
あとはもう少しWP Costomizer Frameworkの内部を覗いてどんなことできるのか研究して見たいと思います。ご指南いただきましてありがとうございました!!
♥ 0いいねをした人: 居ません「パネルの中のセクションの中のコントロール」という考え方ではなくて、「独立したコントロール、セクション、パネルがそれぞれあり、コントロールをどのセクションに属させるか、セクションをどのパネルに属させるかを定義する」と考えてください
この考え方、全然できておらず目から鱗でした。ありがとうございます。
結果的に、前者の「単純な方法」で試してみて、うまい具合にコントロールを新規追加し、プレビューも問題なく、スタイルをページに書き出すことができました。
/** * Load WP Customizer Framework */ $customizer = \Inc2734\WP_Customizer_Framework\Customizer_Framework::init(); $customizer->panel( 'design', [ 'title' => 'sample', 'priority' => 1000, ] ); $customizer->section( 'base-design', [ 'title' => __( 'Base design settings', 'snow-monkey' ), 'priority' => 100, ] ); $customizer->control( 'color', 'accent-color', [ 'label' => __( 'Accent color', 'snow-monkey' ), 'default' => '#bd3c4f', 'priority' => 100, ] ); $customizer->control( 'color', 'description-color', [ 'label' => __( 'Descriptioncolor', 'snow-monkey' ), 'default' => '#bd3c4f', 'priority' => 110, ] );
このような感じです。
この後に
if ( ! is_customize_preview() ) { return; } $panel_design = $customizer->get_panel( 'design' ); $section_base_design = $customizer->get_section( 'base-design' ); $control_accent_color = $customizer->get_control( 'accent-color' ); $control_description_color = $customizer->get_control( 'description-color' ); $control_accent_color->join( $section_base_design )->join( $panel_design ); $control_description_color->join( $section_base_design )->join( $panel_design );
とありますが、
if ( ! is_customize_preview() ) { return; } else { $panel_design = $customizer->get_panel( 'design' ); $section_base_design = $customizer->get_section( 'base-design' ); $control_accent_color = $customizer->get_control( 'accent-color' ); $control_description_color = $customizer->get_control( 'description-color' ); $control_accent_color->join( $section_base_design )->join( $panel_design ); $control_description_color->join( $section_base_design )->join( $panel_design ); }
こうする必要は特にありませんか?特段、挙動が変わるわけではないようですが、いただきましたコードに、
if ( is_customize_preview() ) { $panel_layout = $customizer->get_panel( 'layout' ); $section_header = $customizer->get_section( 'header' ); $control_header_layout = $customizer->get_control( 'header-layout' ); $control_header_layout->join( $section_header )->join( $panel_layout ); }
という記述箇所があったので、こういう処理にした方が良いのかな?とか、素人的に思いましたので…(間違っていると思います…
—–
重ねてお聞きしたいのですが、上記の流れでカスタマイザーを実装していくつもりなのですが、例えばレイアウトの変更などはスタイルの書き出しではなく、条件分岐で読み込むファイルを変える、もしくはCSSクラスを切り替えるなどの処理が必要になってくると思いますが、そちらの方法に関して何かアドバイスいただければ幸いです。
よろしくお願いいたします。
♥ 0いいねをした人: 居ません -
投稿者投稿