Thumbnails in der Navigation auf Beitragsseite

  • Hallo Leute,

    ich hätte gerne auf meiner Beitragsseite in der Navigation unten (vor und zurück) das Bild des jeweiligen Posts, quasi als Vorschau, angezeigt. Kann mir jemand erklären, wie ich das am hinbekomme?

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • So, habe jetzt einiges ausprobiert und bin bei diesem Ergebnis stehengeblieben. Da meine PHP-Kenntnisse gen 0 gehen sieht das wahrscheinlich grauenhaft aus. Immerhin funktioniert es. Müsste nur noch ins "Reine" gebracht...


  • Check mal durch: Funktioniert die Verlinkung überall? Auch dort, wo das (eigentlich vorhandene) Beitragsbild nicht angezeigt wird?
    Lässt sich ausfindig machen, warum das Bild nicht gezeigt werden kann (Webdeveloper-Tools)?

    Gruß
    helix

  • Die Verlinkung funktioniert einwandfrei. Wenn ich das Bild untersuche, dann wird folgendes angezeigt:

    HTML
    <img width="100px" alt="" src="&lt;img width=" 750"="" height="290" class="attachment-post-thumbnail size-post-thumbnail wp-post-image">

    Es wird wahrscheinlich an dieser Stelle liegen:

    HTML
    <img width="100px" alt="" src="<?php echo $image;?>

    Ändere ich sie jedoch wie folgt, dann bekomme ich "> neben den Bildern angezeigt.

    HTML
    <img width="100px" alt="" src="<?php echo $image;?>">

    Einmal editiert, zuletzt von TonyMacarony (15. Dezember 2016 um 17:56)

  • Dein image-Tag ist in beiden Fällen nicht richtig. Image ist ein selbstschließendes Element <img />
    =>

    PHP
    <img width="100px" alt="" src="<?php echo $image;?>" />

    Und dann hast du deine Variable $image falsch angelegt. Die Funktion get_the_post_thumbnail() gibt dir bereits einen <img>-Tag zurück, nicht die URL. Dafür wäre the_post_thumbnail_url() zuständig.
    Bleiben wir bei get_the_post_thumbnail(); – deine weiteren Parameter gibst du dann in den Klammern ein.

    PHP
    $image = get_the_post_thumbnail( $prevpost, array( 100, xx), array( 'class' => 'meine-thumbnail-class', 'alt' => '' ) );


    Ich weiß nicht, ob die Größenattribute auch funktionieren, wenn du nur ein Maß – die Breite – angibst, ansonsten für xx noch die Höhe eintragen (ausprobieren); Klasse ist beispielhaft; dein alt-Tag musst du sowieso noch mit Leben, äh: Inhalt, füllen.

    Und dann eben in der Ausgabe deine Variable anstelle des img-Tags ausgeben.

    Siehe: https://developer.wordpress.org/reference/func…post_thumbnail/

    Gruß
    helix

  • Großartig! So funktioniert es schonmal wunderbar, mit einem aber (kommt unter dem Code).

    Also: Hier erstmal zum nachvolziehen mein abgeänderter Code:

    Nun zum "aber"...

    Wie gesagt, alles funktioniert soweit genauso wie ich es mir vorgestellt habe. Leider gibt es noch zwei Probleme:

    1. Wenn ich zum allerersten Beitrag gehe, dann wird mir dieser auch als Thumbnail angezeigt, obwohl dort gar kein Bild mehr sein dürfte.
    2. Wenn ich zum allerletzten Beitrag gehe, dann wird dort gar kein Thumbnail mehr vom vorherigen Post angezeigt.

    Was nun? :shock:

  • Ich hatte ein ähnliches Problem für eine Bilder-Navigation (Galerie), dort allerdings „symmetrisch“, d.h. Fehlermeldung beim ersten und beim letzten Bild, weil es dort kein voriges bzw. folgendes Bild geben kann.

    Hast du den Debug-Modus eingeschaltet? Bekommst du eine Fehlermeldung? Vielleicht hilft die weiter.

    Gruß
    helix


  • Hast du den Debug-Modus eingeschaltet? Bekommst du eine Fehlermeldung? Vielleicht hilft die weiter.

    Code
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 712 Notice: Undefined offset: 1 in 
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 714 Notice: Undefined offset: 1 in 
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 717 Notice: Undefined offset: 1 in 
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 712 Notice: Undefined offset: 1 in 
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 714 Notice: Undefined offset: 1 in 
    /mnt/web102/b3/98/57738898/htdocs/WordPress_SecureMode_01/wp-includes/media.php on line 717 Notice: Undefined offset: 1 in

    ...usw.! Das wird angezeigt.

  • Hallo, ich hatte das schon gesehen, dass du die Fehlermeldung gepostet hast, der Thread lag auch dauernd in einem geöffneten Tab und hat freundlich gewartet … kam nur dies und das und sonstewas auch noch …

    „Undefined offset: 1“ ist schon ein Hinweis darauf, dass nicht vorab geklärt ist, ob es da überhaupt was auszugeben gibt.

    Versuche mal diese Abfrage auch noch einzubauen. Wahrscheinlich am zielführendsten mit !empty()
    Vielleicht in die Richtung:

    PHP
    if ( !empty( $next_post ) && is_a( $next_post , 'WP_Post' ) )

    Gruß
    helix

  • „Undefined offset: 1“ ist schon ein Hinweis darauf, dass nicht vorab geklärt ist, ob es da überhaupt was auszugeben gibt.


    Das war Unsinn. Ich hätte mal die angegebenen Zeilen in der ebenso angegebenen media.php in wp-includes nachlesen sollen – sorry.

    In dem Zusammenhang bedeutete die Fehlermeldung, dass du für deine Bildgröße keine Höhe angegeben hattest.
    Ich vermute, du wolltest die Höhe auf „auto“ setzen => das funktioniert in get_the_post_thumbnail() tatsächlich auch genauso, du kannst den Wert auto angeben, in Hochkommata eingeschlossen.

    Damit ist dann die Fehlermeldung weg.
    Nach wie vor bestehen bleibt das fehlerhafte Verhalten beim ersten und letzten Beitrag in der Reihe.

    Ich habe es jetzt mal auf meine Art durchgespielt, d.h. ich habe die Funktionen get_previous_post() und get_next_post() verwendet und noch die if-Abfragen eingebaut, ob es einen vorherigen oder nachfolgenden Beitrag überhaupt gibt und ob der Beitrag ein Beitragsbild hat (sonst Ausgabe des Beitragstitels).
    Damit funktioniert es bei mir einwandfrei.

    Gruß
    helix

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!