WordPress uitgelichte afbeelding tonen in sidebar widget (snippet)

Probleem:
Voor een website die ik drie jaar geleden heb ontwikkelt maakte ik gebruik van de plugin “Featured image”. Deze plugin voegt een widget toe om een uitgelichte afbeelding in de sidebar te tonen.

Deze plugin is al twee jaar niet meer onderhouden door de auteur. Als een plugin meer dan een jaar niet wordt onderhouden is de aanname dat deze niet mee veilig en stabiel is. Helaas kon ik geen alternatieve plugin vinden die hetzelfde deed.

Oplossing:
Ik heb daarom PHP code geschreven die hetzelfde doet. Voeg onderstaande code toe aan het functions.php bestand van je thema. Sleep vervolgens in wp-admin de widget naar de sidebar en klaar.

/**
 * Register the widget to add the featured image to a sidebar.
 */
wp_register_sidebar_widget(
    'custom-featured-image',
    'Uitgelichte afbeelding',
    'getting_featured_img',
    ['description' => 'Toon de uitgelichte afbeelding van een bericht of pagina in de sidebar.']
);

/**
 * Get the featured image HTML.
 *
 * @return $html string
 */
function getting_featured_img() {
    global $post;

    $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'single-post-thumbnail' );
    $alt   = get_post_meta(get_post_thumbnail_id( $post->ID ), '_wp_attachment_image_alt', true);

    $html = '';
    if($image) {
        if ($alt) {
            $html = "
<div id='featured-img-id'>"
                  . "<img src='" . esc_attr($image[0]) . "' alt='" . esc_attr($alt) . "' />"
                  . "</div>

";
        } else {
            $html = "
<div id='featured-img-id'>"
                  . "<img src='" . esc_attr($image[0]) . "' />"
                  . "</div>

";
        }
    }

    echo $html;
}

Getest met:
WordPress 5.0.3

WordPress uitgelichte afbeelding tonen in sidebar widget (snippet)
Beoordeel dit blog

Laat een reactie achter

Your email address will not be published. Required fields are marked *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.