Я ищу способ добавить новый вид элемента управления на панель предварительного просмотра в реальном времени . Я видел, как добавить новые разделы на панель с помощью
add_action( 'customize_register'...
Элемент управления, который я хочу реализовать, представляет собой другой вид палитры цветов. В предыдущем посте мы увидели, как расширить базовые классы для добавления виджетов, но здесь мне не хватает ловушки, которая позволит мне перенести мой объект в область видимости - WP_Customize_Palette_Control. В
Вы можете увидеть начало кода здесь . Этот код находится в functions.php
файле моей темы.
Спасибо за любую помощь. обкрадывать
Только что обновил код. Теперь я должен require_once
принести на занятия. Так что теперь у меня нет ошибок PHP, но мой новый контрольный HTML не появляется.
<?php
require_once( ABSPATH . WPINC . '/class-wp-customize-setting.php' );
require_once( ABSPATH . WPINC . '/class-wp-customize-section.php' );
require_once( ABSPATH . WPINC . '/class-wp-customize-control.php' );
class WP_Customize_Palette_Control extends WP_Customize_Image_Control {
public $type = 'palette';
public $removed = '';
public $context;
public function enqueue() {
//wp_enqueue_script( 'wp-plupload' );
}
public function to_json() {
parent::to_json();
$this->json['removed'] = $this->removed;
if ( $this->context )
$this->json['context'] = $this->context;
}
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<div>
<a href="#" class="button-secondary upload"><?php _e( 'Upload' ); ?></a>
<a href="#" class="remove"><?php _e( 'Remove' ); ?></a>
</div>
</label>
<?php
}
}
//new WP_Customize_Palette_Control();
//add_action('customize_controls_init', 'WP_Customize_Palette_Control');
// add an option to the customize panel
function sci_customize_controls_init($wp_customize) {
$wp_customize->add_section( 'themename_color_scheme', array(
'title' => __( 'Color Scheme', 'themename' ),
'priority' => 35,
) );
$wp_customize->add_setting( 'themename_theme_options[color_scheme]', array(
'default' => 'some-default-value',
'type' => 'option',
'capability' => 'edit_theme_options',
) );
$wp_customize->add_control( 'themename_color_scheme', array(
'label' => __( 'Color Scheme', 'themename' ),
'section' => 'themename_color_scheme',
'settings' => 'themename_theme_options[color_scheme]',
'type' => 'palette',
'choices' => array(
'value1' => 'Choice 1',
'value2' => 'Choice 2',
'value3' => 'Choice 3',
),
) );
}
add_action( 'customize_register', 'sci_customize_controls_init' );
источник
Ответы:
Пример и класс для использования
Вы можете видеть на моей текущей теме, как возможно использовать это. Также вы можете использовать класс. Смотрите этот класс на Github и проверьте,
functions.php
чтобы включить это.Start & init
Вы можете зарегистрировать свои пользовательские настройки для настройщика темы через
customize_register
хук:Использование в теме:
Используйте его, как в примере ниже ↓:
корректировок
Вы также можете изменить элемент управления:
Контроль типа по умолчанию
text
. Создает текстовое поле управления. Другой типdropdown-pages
элемента управления , который создает раскрывающийся список страниц WordPress.Но это не все. На самом деле их еще несколько, но поскольку они такие обычайные, они объявлены по-другому.
Этот использует ООП:
Дополнительные замечания:
WP_Customize_Upload_Control
- Это дает вам окно для загрузки файлов. Однако, вы, вероятно, не будете использовать это напрямую, вы захотите расширить его для других вещей, например:WP_Customize_Image_Control
- Это даст вам средство выбора изображений и окно загрузки. Это расширяет контроллер загрузки. Вы можете увидеть это в действии на пользовательском фрагменте фона, где пользователь может загрузить новый файл в качестве фонового изображения.WP_Customize_Header_Image_Control
- Из - за изменения размера действия части заголовка, то нужно немного специальной обработки и отображения, таким образом ,WP_Customize_Header_Image_Control
расширяетWP_Customize_Image_Control
чтобы добавить эту функциональность. Вы можете увидеть это в действии на пользовательском заголовке, где пользователь может загрузить новый файл в качестве изображения заголовка.Вы можете найти больше информации о «Настройщике тем» в блоге ottos .
Обновление 11/06/2012
Живой пример для возможности чтения и другие примеры, см. Открытый репозиторий для источника и доку.
Обновление 15.01.2013
Мы создали репозиторий на github с пользовательским классом, чтобы использовать его, легко и готово. Может быть, вы можете использовать его или продвигать свои идеи и решения.
источник
Хорошо, вот как это сделать. Разделите ваш класс (ы) управления на один или несколько новых файлов.
У вас есть функция или метод, подключенный к customize_register, верно? В этой функции или методе требуется один раз новые файлы непосредственно перед добавлением пользовательских элементов управления. Тогда PHP не будет жаловаться на переопределение классов.
Примечание: это не будет работать из коробки, но показывает хитрость.
источник
Вы никогда не используете свой класс. Попробуйте передать новый экземпляр вашего класса методу add_control:
Кроме того, я не думаю, что WP знает, что имя опции для вашей настройки является частью массива. Может быть, лучше иметь
themename_theme_options_color_scheme
вместоthemename_theme_options[color_scheme]
.Класс вашего расширения принадлежит элементу управления загрузкой изображений. Если вы создаете палитру цветов, вам, вероятно, следует расширить класс WP_Customize_Control .
источник
Просто для полноты: пример того, как добавить числовое поле в Theme Customizer.
источник
number
в качествеtype
контроля по умолчанию и использоватьinput_attrs
для передачиstep
и т. Д.Я думаю, что вы должны добавить обратную косую черту перед WP_Customize. Итак, это будет
, Потому что обратный слеш предполагал, что WP_Customize_Image_Control не из того же пространства имен
Дайте мне знать, если это помогло
источник