web-dev-qa-db-ja.com

テーマカスタマイザで複数のセッションを作成する

theme Customizerで複数のセクションを作成しようとしましたが、成功しませんでした。

/* Theme customize - Create menu bar link */
function example_customizer_menu() { add_theme_page( 'Customize', 'Customize', 'edit_theme_options', 'customize.php' ); }
add_action( 'admin_menu', 'example_customizer_menu' );

Theme Customizerのすべての新しいセクション(タブ)でどのようにして入手できたかを以下のコードで記述する必要があります。正しいですか?

/* Create one new tab */
add_action('customize_register', 'themedemo_customize');
function themedemo_customize($wp_customize) {

$wp_customize->add_section( 'themedemo_demo_settings', array(
    'title'          => 'Demonstration Stuff',
    'priority'       => 35,
) );

$wp_customize->add_setting( 'some_setting', array(
    'default'        => 'default_value',
) );

$wp_customize->add_control( 'some_setting', array(
    'label'   => 'Text Setting',
    'section' => 'themedemo_demo_settings',
    'type'    => 'text',
) );

$wp_customize->add_section( 'themedemo_demo_settings', array(
    'title'          => 'Demonstration Stuff',
    'priority'       => 40,
) );

$wp_customize->add_setting( 'some_other_setting', array(
    'default'        => '#000000',
) );

$wp_customize->add_control( new WP_Customize_Color_Control( $wp_customize, 'some_other_setting', array(
    'label'   => 'Color Setting',
    'section' => 'themedemo_demo_settings',
    'settings'   => 'some_other_setting',
) ) );

}

「customize_register」を使用したのはなぜですか。また常に異なる単語があるのはなぜですか。どうやってそれを「themedemo_customize」にしたかそれはここのパラメータのようなものです..

add_action('customize_register', 'themedemo_customize');
function themedemo_customize($wp_customize) {

公式文書を読みましたが、取得できませんでした。

1
tanotify

フックcustomize_registerは、すべてのカスタム設定をデフォルトのコア設定に含めるためのものです。あなたのコードは良いスタートです、フック、そこに関数を始めて、そこにすべての設定とセクションがあります。しかし、2つのセクション領域を同じIDで登録します。間違っているカスタマイザで2つの異なるセクションを作成する場合は、そのセクション用の2つの異なるキーIDも作成します - $wp_customize->add_section。例:

    // Set option key based on get_stylesheet()
    $this->theme_key  = $args['theme_key'];
    $this->option_key = $this->theme_key . '_theme_options';

    // ===== Layout Section =====
    // Option for leave sidebar left or right
    $wp_customize->add_section( $this->option_key . '_layout', array(
        'title'       => __( 'Layout', 'documentation' ),
        'description' => __( 'Define main Layout', 'documentation' ),
        'priority'    => 30
    ) );

    // ===== Custom Section =====
    // create custom section for rewrite url
    $wp_customize->add_section( $this->option_key . '_rewrite_url', array(
        'title'       => __( 'Rewrite', 'documentation' ),
        'priority'    => 35,
    ) );

あなたは多くのセクションを作成することができます。たぶんあなたはすぐに使える解決策のためにこの例を見る:

1
bueltge