Große, prominent platzierte Bilder sind Eye-Catcher. WordPress hat sogar einen Namen dafür: Featured Image. Was aber ist mit den anderen Bildern? Sie immer auch so groß einzubetten, ermüdet die Leserin. Wir würden doch die Lesbarkeit unser Site weiter erhöhen, böten wir der Lesering zunächst ein Vorschaubild an, das sie auf Wunsch auch detaillierter betrachten kann. Das ermöglichen die Fancy Boxes:
‘Featured Images’ — so das Netz — haben am Besten das 16:9 Format.1 Das sind dann große Bilder. Wir wollen ihr das Bild aber zuerst kleiner zu präsentieren — schon vom Text umflossen, für den sie sich entschieden hat — und erst auf Wunsch — auf einen Klick hin — groß.
Eine elegante Lösung dafür heißt fancybox
.((Aber Vorsicht: hier gibt es gerade beginnende Lizenzirritationen. Ich switche deshalb zurück zur letzten 3er Version!))
Lösung
- Erstelle ein Verzeichnis
lib
in Deinem Child-Theme. - Lade die Dateien jquery.fancybox.min.css und jquery.fancybox.min.js von github.com/fancyapps/fancybox herunter in das erstellte Verzeichnis
lib
. - Füge den folgenden Code in Deine
functions.php
ein:
/*
* Simple short code for inserting a fancy boxed imaged
* (C) 2023 Karsten Reincke
* SPDX-License-Identifier: MIT
*/
function fcbPicCode($atts){
$atts = (array) $atts;
$imid = $atts[0]; // obligatoric parameter
$width = $atts[1]; // obligatoric parameter
$wpsize = ""; // thumbnail, medium, large, or full
$alt=""; // optional parameter
$style="is-style-default"; // optional parameter
$align="alignleft"; // optional parameter
/* IDEA: try to download the best fitting image size be default.
* Download the full sized image if and when the user had said
* she wants to see it by a click (fancy)
*/
if ($width <= 150)
$wpsize = "thumbnail";
elseif ($width <=300)
$wpsize = "medium";
elseif ($width <= 1024)
$wpsize = "large";
else
$wpsize = "full";
/* get the path to the original image */
$fimgp=wp_get_attachment_image_url($imid,"full");
if (!($fimgp)) return ("wrong image data");
/* if it's an svg, there won't be any smaller images */
if (wp_get_image_mime($fimgp) == "svg" )
$simgp=$fimgp;
else {
/* otherwise get the path to the fitting smaller image */
$simgp=wp_get_attachment_image_url($imid,$wpsize);
if (!($simgp)) $simgp=$fimgp;
}
if (array_key_exists(2,$atts)) {
$alt=$atts[2];
if (array_key_exists(3,$atts)) {
$style=$atts[3];
if (array_key_exists(4,$atts))
$align=$atts[4];
}
}
$res=
'<div class="wp-block-image">' .
'<figure class="' . $align . ' size-medium is-resized ' . $style . '">' .
'<a href="' . $fimgp . '" data-fancybox="">' .
'<img src="' . $simgp . '" alt="'. $alt .'" width="' . $width . '" >' .
'</a>' .
'</figure></div>';
return $res;
}
add_shortcode('fcbpic', 'fcbPicCode');
- Füge die folgenden Zeilen in Deine
header.php
, und zwar direkt vor dem Tag</head>;
<link rel="stylesheet" type="text/css"
href="<?php echo get_stylesheet_directory_uri(); ?>/lib/jquery.fancybox.min.css" media="all">
<script type="text/javascript"
src="<?php echo get_stylesheet_directory_uri();?>/lib/jquery.fancybox.min.js"></script>
Hintergrund
Natürlich gibt es dafür auch ein WordPress-Plugin. Vollmundig verspricht es, “FancyBox” werde “[…] automatically applied to all your image links and galleries”.2 Die Beschreibung sagt vorsichtiger, das Plugin benutze “[…] jQuery to apply FancyBox to ANY thumbnails that link directly to an image”.3 Mir jedenfalls war damit nicht geholfen: Ich möchte Beiträge im ersten Absatz mit einem kleinen Bild ‘aufhübschen’ und es meiner Leserin — auf einen Klick hin — in der originalen Größe anzeigen können. Auf Thumbnails möchte ich nicht begrenzt sein.
So habe ich auf die manuelle Methode zurückgriffen: Fancy-Bibliotheken im Child-Theme-Ordner abgelegt und einen bequemeren Shortcode definiert:4
[fcbpic imageID width alt imageStyle imageAlignment]
Konkret habe ich unseren Code so erzeugt:
[fcbpic 5516 400 "tomcat in a basket" is-style-rounded aligncenter]
Und in welchem Zusammenhang …
… steht das mit unserer Migration zu bootScore? Nun, hat eine Web-Designerin die ersten Schritte auch in Sachen SEO getan, wird sie sich bald einem richtig dicken Brett zuwenden, nämlich ihrem Menü. Dabei muss sie thematische Cluster sauber gliedern und präsentieren, ohne zu fancy zu werden. Dann kann sie die Anzeige von festen und skalierbaren Bildern aufhübschen und beschleunigen. Über einen Teil dieser Etappe spricht auch dieser Post.
Im Übrigen: Männer sind mitgemeint.
- z.B. 1200x628. oder 1280x720 vgl. pars pro toto wpastra.com [↩]
- vgl. Fancy Box Installation [↩]
- vgl. Fancy Box Details [↩]
- Die *imageId* erhält frau, wenn sie ihre Mediabibliothek öffnet und das gewünschte Bild anklickt. Oben in der Urlzeile erscheint dann die Bild-ID. [↩]