seção Custom Image no Customizer

9

Portanto, tenho esta seção personalizada no personalizador que controla os produtos de recursos na página inicial. Há todos registrados e assim por diante, mas o problema em que estou preso é quando o cliente faz o upload de uma imagem do recurso que eu não sei como atualizá-la.

functions.php código com o qual estou trabalhando:

    // 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');

Eu configurei os 2 produtos para terem a mesma imagem padrão, mas quando vou para o personalizador e atualizo Feature Product #2 ele não é atualizado.

Eu sei que preciso adicionar algum código na primeira página dentro da tag <img> , mas não sei o que: /

Eu tenho a sensação de que o que eu tenho acima é uma maneira longa de fazer as coisas, mas é o que eu comecei a trabalhar, se há uma maneira fácil, então eu apreciaria que você me apontasse nessa direção:)

Agradeço qualquer ajuda

Nota lateral : Meu front-page.php :

<div class="featureImg">
    <img src="What goes here?" alt="Product 1">
    <img src="What goes here?" alt="Product 1">
</div>
    
por Stephen 26.01.2016 / 12:52

1 resposta

8

Então eu fiz algumas pesquisas sobre o assunto e encontrei uma solução. Basicamente, o WordPress tem esse recurso interessante onde você pode chamar algo chamado get_theme_mod , então o que eu essencialmente fiz foi adicionar get_theme_mod dentro do meu <img> src .

Então, é isso que eu mudei minha tag <img> para depois descobrir get_theme_mod :

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

Basicamente, o que isso fez foi buscar o $wp_customize->add_setting('customizer-setting-name') e, em seguida, produzir o conteúdo. Embora eu não tenha encontrado nenhuma maneira ainda de colocar um default-image dentro do customizador, mas quando eu vou atualizar este post.

Isso é o que meu arquivo customizer.php parece agora:

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_two_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');
    
por Stephen 26.01.2016 / 13:00