В настоящее время я работаю над своим первым углубленным пользовательским шаблоном для WordPress, используя функциональность настройщика.
Я могу создавать параметры, а также сохранять их, но почему-то не могу перенести их на саму страницу. Код, который я использую:
//Do we want our template to be boxed or wide?
function cbTheme_customize_register($wp_customize){
// =============================
// = Add section =
// =============================
$wp_customize->add_section('cbTheme_general_settings', array(
'title' => __('General Settings', 'cbTheme'),
'description' => 'Determines wether your site is boxed, or has 100% width',
'priority' => 10,
));
// =============================
// = Add setting =
// =============================
$wp_customize->add_setting('cbTheme_site_settings[sitewidth]', array(
'default' => 'value1',
'capability' => 'edit_theme_options',
'type' => 'option',
));
$wp_customize->add_control('cbTheme_site_width', array(
'label' => __('Site width', 'cbTheme'),
'section' => 'cbTheme_general_settings',
'settings' => 'cbTheme_site_settings[sitewidth]',
'type' => 'radio',
'choices' => array(
'value1' => 'Wide',
'value2' => 'Boxed',
),
));
}
add_action( 'customize_register', 'cbTheme_customize_register' );
Я использую это в моем header.php (первые строки), чтобы попытаться получить параметры (как они сохраняют).
//GET ALL SETTINGS FROM CUSTOMIZER
function cbTheme_customize_css($wp_customize){
$sitewidth = get_theme_mod('cbTheme_site_settings[sitewidth]');
}
add_action( 'wp_head', 'cbTheme_customize_css');
Любой совет / отзыв по этому поводу? Я предполагаю, что неисправный код является последней частью. Я пытался следовать кодексу, но я потерян в процессе поиска данных.
Хорошо, я был в поиске ответа навсегда и нашел обходной путь на данный момент. Если у кого-то есть лучший ответ, пожалуйста, предоставьте его мне / другим пользователям. Обходной путь, который я использовал, должен быть применен во второй части кода, где вы получаете параметры темы.
Чтобы исправить проблему, замените это
$sitewidth = get_theme_mod('cbTheme_site_settings[sitewidth]');
с этим
extract(get_option('cbTheme_site_settings'));
Это предоставит вам переменные, которые имеют ключ массива в качестве имени переменной, прямо из таблицы параметров.
Других решений пока нет …