Выходные значения из Customizer не работают

Я пытаюсь просто вывести значение из одного из полей в Customizer.

Это код для создания настройки и ее контроля (это в функции.php для текущей темы):

<?php add_action('customize_register', 'h2c_customize_register'); function h2c_customize_register($wp_customize) { $wp_customize->add_setting( 'h2c[logo_width_px]', array ( 'default' => '', 'capability' => 'edit_theme_options', 'type' => 'option', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'logo_width_px', array( 'label' => __('Logo Width', 'obf_text'), 'section' => 'h2c_default_things', 'settings' => 'h2c[logo_width_px]', ) ); } 

И это то, что я использую, чтобы получить значение этого поля:

 <?php echo get_theme_mod( 'h2c[logo_width_px]' ); ?> 

Но ничего.

Поле видимо в самом Настройщике, и оно действительно сохраняет значение, которое я в него вставлял. Поэтому я знаю, что он содержит данные. После ввода кода вывода в var_dump () вместо этого я получаю bool (false) , поэтому я предполагаю, что он даже не находит параметр по какой-то причине?

Я сделал что-то не так? Я просмотрел код уже десятки раз, и я не вижу, где может быть проблема.

Я новичок в использовании команды Customizer, поэтому я уверен, что сделал что-то неправильно, я просто не могу найти, что это может быть.

Редактировать: Думаю, я решил.

Edit2: Нет, я этого не сделал. Я думал, что изменение type с option на theme_mod решило его, но это не так.

Edit3: вздох . Оказывается, это было сочетание двух вещей: type должен быть theme_mod и имя не может содержать никаких [] символов.

Solutions Collecting From Web of "Выходные значения из Customizer не работают"

Вы регистрируете опцию в настройке в качестве option а затем пытаетесь получить ее как theme_mod . Если вы просто измените type с option на theme_mod когда вы зарегистрируете настройку, он будет работать нормально. Поэтому попробуйте использовать этот код:

 add_action('customize_register', 'h2c_customize_register'); function h2c_customize_register($wp_customize) { $wp_customize->add_setting( 'logo_width_px', array ( 'default' => '', 'capability' => 'edit_theme_options', 'type' => 'option', 'transport' => 'postMessage', ) ); $wp_customize->add_control( 'logo_width_px', array( 'label' => __('Logo Width', 'obf_text'), 'section' => 'h2c_default_things', 'settings' => 'logo_width_px', ) ); } 

а затем, чтобы получить вариант:

 echo get_theme_mod( 'logo_width_px' ); 

Обратите внимание, что в приведенном выше коде я использовал logo_width_px вместо h2c[logo_width_px] Это потому, что theme_mods – это сериализованные параметры, вам больше не нужно ничего делать.