Bagian Gambar Kustom di Customizer

9

Jadi saya memiliki Bagian Kustom ini di Customizer yang mengontrol Produk Fitur di Halaman Beranda. Ada semua yang terdaftar dan seterusnya tetapi masalah yang saya hadapi adalah ketika klien mengunggah salah satu gambar fitur yang saya tidak tahu cara membuatnya diperbarui.

kode functions.php Saya bekerja dengan:

    // Customiser
function themeName_customize_register( $wp_customize ) {
    $wp_customize->add_setting('feature_product_one', array(
        'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png',
        'transport'     => 'refresh',
        'height'        => 180,
        'width'        => 160,
    ));

    $wp_customize->add_setting('feature_product_two', array(
        'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png',
        'transport'     => 'refresh',
        'height'        => 180,
        'width'        => 160,
    ));

    $wp_customize->add_setting('feature_product_three', array(
        'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png',
        'transport'     => 'refresh',
        'height'        => 180,
        'width'        => 160,
    ));

    $wp_customize->add_setting('feature_product_four', array(
        'default-image' => get_template_directory_uri() . '/assest/imgs/featureProducts/product1.png',
        'transport'     => 'refresh',
        'height'        => 180,
        'width'        => 160,
    ));

    $wp_customize->add_section('feature_images', array(
        'title'           => __('Featured Products', 'themeRemax'),
        'description'     => __('Your 5 Feature Images on the Home-Page.'), 
        'priority'        => 70,
        'active_callback' => 'is_front_page',
    ));

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'feature_product_one_control', array(
        'label' => __('Feature Product #1', 'themeRemax'),
        'section' => 'feature_images',
        'settings' => 'feature_product_one',
    )));

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'feature_product_two_control', array(
        'label' => __('Feature Product #2', 'themeRemax'),
        'section' => 'feature_images',
        'settings' => 'feature_product_two',
    )));  

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'feature_product_three_control', array(
        'label' => __('Feature Product #3', 'themeRemax'),
        'section' => 'feature_images',
        'settings' => 'feature_product_three',
    )));

    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'feature_product_four_control', array(
        'label' => __('Feature Product #4', 'themeRemax'),
        'section' => 'feature_images',
        'settings' => 'feature_product_four',
    )));     

}
add_action('customize_register', 'themeName_customize_register');

Saya telah menetapkan 2 produk untuk memiliki gambar default yang sama tetapi ketika saya masuk ke customizer dan memperbaruinya Feature Product #2tidak memperbarui sama sekali.

Saya tahu saya perlu menambahkan beberapa kode di halaman depan di dalam <img>tag tetapi saya tidak tahu apa: /

Saya memiliki perasaan bahwa apa yang saya miliki di atas adalah cara yang panjang lebar untuk melakukan sesuatu tetapi itu yang saya dapatkan, jika ada cara yang mudah maka saya akan menghargai Anda mengarahkan saya ke arah itu :)

Saya menghargai bantuan apa pun

Catatan Samping : Halaman depan saya.php :

<div class="featureImg">
    <img src="What goes here?" alt="Product 1">
    <img src="What goes here?" alt="Product 1">
</div>
Stephen
sumber

Jawaban:

11

Jadi saya melakukan riset tentang masalah ini dan saya menemukan solusinya. Pada dasarnya WordPress memiliki fitur keren ini di mana Anda dapat memanggil sesuatu yang disebut get_theme_modjadi apa yang saya lakukan pada dasarnya adalah menambahkan get_theme_moddi dalamnya <img> src.

Jadi ini yang menjadi alasan saya mengubah <img>tag saya setelah mencari tahu tentang get_theme_mod:

<img src="<?php echo esc_url( get_theme_mod( 'customizer-option-name' ) ); ?>" alt="Product 1">

Pada dasarnya apa yang dilakukan adalah mengambil $wp_customize->add_setting('customizer-setting-name')dan kemudian mengeluarkan konten. Meskipun saya belum menemukan cara untuk menempatkan default-imagedalam penyesuai tetapi ketika saya melakukannya saya akan memperbarui posting ini.

Seperti inilah customizer.phpfile saya sekarang:

function themeName_customize_register( $wp_customize ) {

    // Add Settings
    $wp_customize->add_setting('customizer_setting_one', array(
        'transport'         => 'refresh',
        'height'         => 325,
    ));
    $wp_customize->add_setting('customizer_setting_two', array(
        'transport'         => 'refresh',
        'height'         => 325,
    ));

    // Add Section
    $wp_customize->add_section('slideshow', array(
        'title'             => __('Slider Images', 'name-theme'), 
        'priority'          => 70,
    ));    

    // Add Controls
    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'customizer_setting_one_control', array(
        'label'             => __('Slider Image #1', 'name-theme'),
        'section'           => 'slideshow',
        'settings'          => 'customizer_setting_one',    
    )));
    $wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize, 'customizer_setting_two_control', array(
        'label'             => __('Slider Image #2', 'name-theme'),
        'section'           => 'slideshow',
        'settings'          => 'customizer_setting_two',
    )));    
}
add_action('customize_register', 'themeName_customize_register');
Stephen
sumber