wake-up-neo.com

get_theme_mod gibt eine Nummer und nicht meine Bilddatei zurück

Dies ist das erste Mal, dass ich versuche, ein benutzerdefiniertes Bedienfeld in den Customizer zu implementieren. Ich möchte meine Website einem untergeordneten Thema zuordnen und eine grundlegende Änderung des übergeordneten Themas für meine Blog-Posts vornehmen. Die Art und Weise, wie es jetzt funktioniert, ist, wenn Sie den Mauszeiger über einen Blogeintrag halten, ein fantastisches Symbol für Schriftarten zu sehen, das in der Mitte der Überlagerung angezeigt wird Scripting für den Customizer.

Ich habe den Abschnitt erfolgreich zum Customizer hinzugefügt und kann mein Logo hochladen. Wenn ich jedoch versuche, das hochgeladene Bild in das Design auszugeben, gilt Folgendes:

<?php echo get_theme_mod( 'hbps_blog_overlay_logo' ); ?>

... es zeigt nur eine Nummer an - Ich bin mir noch nicht mal sicher, worauf sich die Nummer bezieht?

Dies ist mein vollständiges Markup im functions.php meines Kinderthemas:

// Register Hotbox Customizer Options
function hbps_customize_register( $wp_customize ) {

    $wp_customize->add_panel( 'hbps_custom_panel',
        array(
            'title' => __( 'Extra Options' ),
            'description' => esc_html__( 'Additional options for the Flexia theme.' ), 
            'priority' => 90, 
        )
    );

    $wp_customize->add_section( 'hbps_blog_section',
        array(
            'title' => __( 'Blog Extras' ),
            'description' => esc_html__( 'Additional options for the blog section.' ),
            'panel' => 'hbps_custom_panel', 
            'priority' => 160, 
        )
    );

    $wp_customize->add_setting( 'hbps_blog_overlay_logo',
        array(
            'default' => '',
            'transport' => 'refresh',
            'sanitize_callback' => 'absint',
        )
    );

    $wp_customize->add_control( new WP_Customize_Cropped_Image_Control( $wp_customize, 'hbps_blog_overlay_logo',
        array(
            'label' => __( 'Post Overlay Logo' ),
            'description' => esc_html__( 'Upload a custom logo for the masonry layout that will appear when hovering over a blog post. - Recommended Size: 60x60 px' ),
            'section' => 'hbps_blog_section',
            'width' => 60,
            'height' => 60,
            'button_labels' => array( 
                'select' => __( 'Select Logo' ),
                'change' => __( 'Change Logo' ),
                'default' => __( 'Default' ),
                'remove' => __( 'Remove' ),
                'placeholder' => __( 'No logo selected' ),
                'frame_title' => __( 'Select Logo' ),
                'frame_button' => __( 'Choose Logo' ),
            )
        )
    ) );

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

Beispiel eines Blogposts im "Schwebezustand":

 Example Blog Post 

Beispiel eines neuen Customizer-Abschnitts:

 enter image description here 

Zusätzliche Frage:

Ich bin mir nicht sicher, ob es einen Ausweg gibt, aber der Code, den ich zu ändern versuche, ist leider in einem Plugin enthalten, nicht in dem übergeordneten Thema. Der Entwickler, der das Thema erstellt hat, hat die Pro-Version angeboten, indem er das Plugin hinzugefügt hat, das die zusätzlichen Funktionen zusammenfasst. Gibt es eine Möglichkeit, dies von meinem untergeordneten Thema aus zu tun? Ich kann nicht scheinen, eine Weise zu finden, die nicht das direkte Redigieren des Plugins-Codes mit einbezieht, den ich nicht tun möchte.

Vielen Dank für Ihre Hilfe, Shaun

1
Mr.Brown

get_theme_mod gibt den HTML-Code für ein Bild nicht zurück und gibt die URL dieses Bildes nicht zurück. Also, was ist diese Nummer? Dies ist die ID des ausgewählten Anhangs.

Auf diese Weise können Sie entscheiden, wie der ausgewählte Wert verwendet werden soll. Wie wird das Bild angezeigt?

Wenn Sie das Bild drucken möchten, können Sie dies tun:

if ( get_theme_mod( 'hbps_blog_overlay_logo' ) > 0 ) { 
    echo wp_get_attachment_image( get_theme_mod( 'hbps_blog_overlay_logo' ), 'full' ); 
}

Und um nur die URL dieser Datei anzuzeigen:

if ( get_theme_mod( 'hbps_blog_overlay_logo' ) > 0 ) { 
    echo wp_get_attachment_image_url( get_theme_mod( 'hbps_blog_overlay_logo' ), 'full' ); 
}
3