webentwicklung-frage-antwort-db.com.de

Abschnitt Benutzerdefiniertes Bild im Customizer

Ich habe also diesen benutzerdefinierten Bereich im Customizer, der die Funktionsprodukte auf der Homepage steuert. Dort haben sich alle registriert und so weiter, aber das Problem, bei dem ich festgefahren bin, ist, wenn der Client eines der Feature-Images hochlädt, von dem ich nicht weiß, wie es aktualisiert werden soll.

functions.php code mit dem ich arbeite:

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

Ich habe die beiden Produkte auf dasselbe Standard-Image eingestellt, aber wenn ich in den Customizer gehe und den Feature Product #2 aktualisiere, wird er überhaupt nicht aktualisiert.

Ich weiß, dass ich Code auf der Titelseite im Tag <img> hinzufügen muss, aber ich weiß nicht, was: /

Ich habe das Gefühl, dass das, was ich über mir habe, eine langwierige Art ist, Dinge zu tun, aber es ist das, woran ich arbeite. Wenn es eine einfache Möglichkeit gibt, wäre ich dankbar, wenn Sie mir diese Richtung weisen würden :)

Ich freue mich über jede Hilfe

Randnotiz : Meine Startseite.php :

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

Also habe ich einige Nachforschungen angestellt und eine Lösung gefunden. Grundsätzlich hat WordPress diese coole Funktion, mit der man so etwas wie get_theme_mod aufrufen kann. Also habe ich im Wesentlichen get_theme_mod in meinen <img> src eingefügt.

So habe ich mein <img> -Tag geändert, nachdem ich etwas über get_theme_mod erfahren habe:

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

Grundsätzlich wurde dabei die $wp_customize->add_setting('customizer-setting-name') abgerufen und dann der Inhalt ausgegeben. Ich habe zwar noch keine Möglichkeit gefunden, einen default-image in den Customizer einzufügen, aber wenn ich das tue, werde ich diesen Beitrag aktualisieren.

So sieht meine customizer.php-Datei jetzt aus:

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');
8
Stephen