web-dev-qa-db-ja.com

テーマカスタマイザにドロップダウンを追加する

WordPressテーマカスタマイザにドロップダウンコントロールを追加して、その値をテーマソースで使用する方法を教えてください。
いくつかのCSSファイル名を変更するためにドロップダウン値を使いたい

どうもありがとうございました

2
Farhad Sakhaei

テーマカスタマイザにセクションを追加します。

$wp_customize->add_section( 'parsmizban_options', 
 array(
    'title'       => __( 'Theme Options', 'parsmizban' ), //Visible title of section
    'priority'    => 20, //Determines what order this appears in
    'capability'  => 'edit_theme_options', //Capability needed to Tweak
    'description' => __('Allows you to customize settings for Theme.', 'parsmizban'), //Descriptive tooltip
 ) 
);

新しい設定を追加します。

$wp_customize->add_setting( 'bootstrap_theme_name', //No need to use a SERIALIZED name, as `theme_mod` settings already live under one db record
 array(
    'default'    => 'default', //Default setting/value to save
    'type'       => 'theme_mod', //Is this an 'option' or a 'theme_mod'?
    'capability' => 'edit_theme_options', //Optional. Special permissions for accessing this setting.
    //'transport'  => 'postMessage', //What triggers a refresh of the setting? 'refresh' or 'postMessage' (instant)?
 ) 
);

新しいコントロールを追加します。

/ *基本入力型textcheckboxtextarearadioselect、およびdropdown-pagesをサポートします。 * emailurlnumberhiddendateなどの追加の入力タイプは暗黙的にサポートされています。 * /

//3. Finally, we define the control itself (which links a setting to a section and renders the HTML controls)...
$wp_customize->add_control( new WP_Customize_Control(
 $wp_customize, //Pass the $wp_customize object (required)
 'parsmizban_theme_name', //Set a unique ID for the control
 array(
    'label'      => __( 'Select Theme Name', 'parsmizban' ), //Admin-visible name of the control
    'description' => __( 'Using this option you can change the theme colors' ),
    'settings'   => 'bootstrap_theme_name', //Which setting to load and manipulate (serialized is okay)
    'priority'   => 10, //Determines the order this control appears in for the specified section
    'section'    => 'parsmizban_options', //ID of the section this control should render in (can be one of yours, or a WordPress default section)
    'type'    => 'select',
    'choices' => array(
        'default' => 'Default',
        'cerulean' => 'Cerulean',
        'cosmo' => 'Cosmo',
        'cyborg' => 'cyborg',
    )
)
) );

このコントロールを使う:

<?php esc_html_e( get_theme_mod( 'bootstrap_theme_name' ) ); ?>
3
Farhad Sakhaei