post_thumbnail und alternativbild jeweils nur die url's

  • Ich möchte für mein Template das Artikelbild auslesen, wenn dieses nicht vorhanden ist möchte ich eine alternatives Bild anzeigen lassen. Ich benötige jeweils die Bild adresse, da ich das Bild als Hintergrund in ein <li> Element setzen möchte.


    Das Artikelbild anzeigen ist einfach:

    Zitat

    <?php the_post_thumbnail(); ?>

    Quelle

    Wenn das Artikelbild nicht vorhanden ist habe ich auch noch hinbekommen:

    Quelle

    Ich möchte gerne die URL zum alternativen Bild mit diesem Befehl erledigen,

    Zitat

    <img src="<?php bloginfo('template_directory'); ?>/images/meinbild.jpg" />

    Quelle

    Wenn ich das einfüge geht das aber nicht mehr:

    Dann würde ich auch gerne nur die url des thubnails haben, also habe ich versucht nur die URL zuerfassen, wie hier beschrieben
    Codex Function Referecne ge attachment image src

    Was auch nicht geklappt hat:

    Wie man sieht, ich habe mich eingelesen, aber keine Kenntnis von PHP, ich vermute das es nicht geht innerhalb der Schleife, eine weitere Schleife zu öffnen, nur wie umgehe ich das. Danke für eure Hilfe.

    • 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

  • verwende bitte einen der drei rechten top buttons fuer code: # fuer allgemeinen code; <> fuer html-code; und den ganz rechten fuer php-code.

    PHP
    <?php
    if(has_post_thumbnail()) {<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail_size' ); $url = $thumb['0']; ?>
    }
    else {
    echo '<img src="<?php bloginfo('template_directory'); ?>/images/meinbild.jpg" /> ';
    }
    ?>



    schwer zu sagen, was nicht geklappt hat - ohne link zur seite.

    a: du hast jetzt wahrscheinlich die post-thumbnail url, aber musst noch den img tag mit ausgeben;

    b:
    fuer die verwendung in strings, verwende get_bloginfo() http://codex.wordpress.org/Function_Reference/get_bloginfo

    PHP
    <?php
    if(has_post_thumbnail()) {<?php $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail_size' ); $url = $thumb['0']; echo 'img src="' . $url . '" alt="" />'; ?>
    }
    else {
    echo '<img src="' . get_bloginfo('template_directory') . '/images/meinbild.jpg" /> ';
    }
    ?>



    (nicht getestet)

  • Danke alchymyth,
    zumeinen für den Hinweiß mit dem Code-Button
    und:

    entschuldige die unpräzise Aussage von mir "nicht geht" heißt, dass es mir nicht die URL des Artikelbildes oder die URL des Alternativ Bildes ausgibt.
    Ziel ist es entweder:

    HTML
    /theme/images/keinartikelbild.png

    oder

    HTML
    http://url.de/wp-content/uploads/2011/03/artikelbildname-200x200.jpg

    Ich kann Dir leider keine url zeigen ich "bastel" local an dem Theme, siehst ja bei meinem derzeitigen können wäre es nicht reif für eine Live Version.
    Die von Dir vorgeschlagene Lösung hat den Rest der website nicht mehr angezeigt.

    Einmal editiert, zuletzt von Lamfrom (13. Juli 2011 um 20:50)

  • mein fehler - ich hatte zuviel kopiert und nicht genug nachgeprueft;

    versuch:

    PHP
    <?php
    if(has_post_thumbnail()) { $thumb = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'thumbnail_size' ); $url = $thumb['0'];  
    }
    else {
    $url = get_bloginfo('template_directory') . '/images/meinbild.jpg';
    }
    echo $url; //nur als test ausgabe;
    ?>


    (halbwegs getestet)

    die $url kannst du dann im hintergrund-style einsetzen;

    beispiel:

    PHP
    <li style="background: #fffeee url(<?php echo $url; ?>) center top no-repeat; ">

Jetzt mitmachen!

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