it-swarm.com.ru

Как добавить изображения по умолчанию в настройку изображения настройщика темы?

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

Если бы кто-нибудь мог объяснить это, я был бы очень признателен.

Правка: Я решил добавить больше информации вместе с щедростью.

Когда пользователь использует настройщик темы (созданный с помощью API настройщика темы), и он в итоге решает, что ему не нравится текущее фоновое изображение, и не хочет его редактировать, поэтому он выбирает настройку/элемент управления фонового изображения для изменения Это. Что ж, я бы хотел, чтобы группа изображений отображалась в раскрывающемся списке по умолчанию, поэтому, если пользователь захочет, он может выбрать его или загрузить новое изображение. Поэтому, когда они выбирают выпадающий список, он будет иметь около 5 предварительно загруженных изображений.

Я думаю, что это, вероятно, нужно сделать, указав элемент управления на папку, но я не уверен, как. Я видел это раньше, но я не могу вспомнить, где.

Я использую элемент управления изображением по умолчанию в настройщике темы.

2
user1632018

Наше путешествие начинается here с класса WP_Customize_Background_Image_Control, который является WP_Customize_Image_Control .

Я хотел бы предложить эти встроенные фоны в новой вкладке рядом с существующими вкладками Upload New и Uploaded. Есть как минимум два способа добиться следующего: либо создать собственный измененный класс на основе класса WP_Customize_Background_Image_Control, либо изменить его поведение по умолчанию, взломав вместо него глобальный $wp_customize. Первый - более длинный путь (хотя, возможно, и более чистый), в котором мы в первую очередь должны определить наш новый элемент управления:

class WP_Customize_Background_Image_Control_Defaults extends WP_Customize_Background_Image_Control {
    public function __construct( $manager ) {
    ...
        $this->add_tab( 'builtins', __('Built-ins'), array( $this, 'tab_builtins' ) );

    ...
    public function tab_builtins() {
    ...
}

Затем удалите элемент управления фоновым изображением по умолчанию, который был зарегистрирован по умолчанию , и добавьте наш новый класс:

add_action( 'customize_register', function( $wp_customize ) {
    /* Substitute the default control for our new one */
    $wp_customize->remove_control( 'background_image' );
    $wp_customize->add_control( new WP_Customize_Background_Image_Control_Defaults( $wp_customize ) );
}, 11, 1 );

Новая вкладка будет просто выводить набор предопределенных изображений, которые поставляются с вашей темой, подобно тому, как по умолчанию tab_uploaded работает с небольшими изменениями. Эта функция будет одинаковой как для пользовательского класса, так и для более быстрого подхода.

Более быстрый и компактный подход включает в себя настройку элемента управления по умолчанию на нашу мелодию после инициализации следующим образом:

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

    $control = $wp_customize->get_control( 'background_image' );
    $control->add_tab( 'builtins', __('Built-ins'), function() {
        /* Supply a list of built-in background that come with your theme */
        $backgrounds = array(
            'images/bg-01.png', 'images/bg-02.png', ...
        );

        global $wp_customize;
        $control = $wp_customize->get_control( 'background_image' );

        foreach ( (array) $backgrounds as $background )
            $control->print_tab_image( esc_url_raw( get_stylesheet_directory_uri() . '/' . $background ) );

    } );

}, 11, 1 );

Опять же, если вы решите использовать свой собственный класс, вы сделаете почти то же самое, add_tab, который делает print_tab_image на всех ваших предустановленных фонах. Довольно просто. Я уверен, что вы можете и дальше улучшать код, используя разные шансы, но в целом, я думаю, это похоже на путь.

Вопросы, идеи, мысли приветствуются.

Default background images in Theme Customizer

11
soulseekah