2017-07-09 1 views
0

Ich versuche, die 3 neuesten Beiträge eines benutzerdefinierten Beitrags in einem Wordpress Shortcode zu zeigen und für so weit bin ich in der Lage, einen Shortcode zu machen, aber aus irgendeinem Grund das Bild aus die Schleife, die den Post zeigt. Auch die HTML-Ausgabe ist anders als ich in meinem Shortcode gemacht habe. Das Bild wird oben auf dem div, das "drüberichten" genannt wird, während es in ihm sein sollte.Wordpress Post Thumbnail kommt aus der Schleife

Meine Funktion:

function latest_news_home() 
{ 
    global $post; 

    $html = ""; 

    $my_query = new WP_Query(array(
     'post_type' => 'news', 
     'posts_per_page' => 3 
)); 

    if($my_query->have_posts()) : while($my_query->have_posts()) : $my_query->the_post(); 

     $html .= "<div class='drieberichten'><a href=\"" . get_permalink() . "\" class=\"linkhome\">"; 
     $html .= "<h4>" . get_the_title() . " </h4>"; 
     $html .= "<p class='afbeeldingnieuws'>" . the_post_thumbnail('full') . " </p>"; 
     $html .= "<p class='shortnieuws'>" . excerpt(15) . "</p>"; 
     $html .= "<a href=\"" . get_permalink() . "\" class=\"meerlezen\">Meer lezen...</a></div></a>"; 

    endwhile; endif; 

    return $html; 
} 
add_shortcode('latest_news', 'latest_news_home'); 

Die HTML-Ausgabe:

<img width="600" height="400" src="http://imgurl.nl/post3.jpg" class="attachment-full size-full wp-post-image" alt="" srcset="http://imgurl.nl/post3.jpg 600w, http://http://imgurl.nl/post3-300x200.jpg 300w" sizes="(max-width: 600px) 100vw, 600px"> 

<div class="drieberichten"><a href="http://websiteurl.nl" class="linkhome"><h4>First News! </h4><p class="afbeeldingnieuws"> </p><p class="shortnieuws">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus aliquam eros ac velit dignissim,...</p></a><a href="http://websiteurl.nl" class="meerlezen">Meer lezen...</a></div> 

Hat einen Vorschlag jemand? Ich habe versucht, eine neue Thumbnail-Größe zu erstellen, ich habe mir gedacht, dass es etwas damit zu tun hat, aber das Problem nicht löst.

Antwort

0

Ersetzen

the_post_thumbnail('full') 

mit

get_the_post_thumbnail(null, 'full', '') 

Das Problem ist the_post_thumbnail() das Ergebnis Echos. Sie benötigen eine Funktion, die eine Zeichenfolge zurückgibt

+0

Das funktioniert! Vielen Dank. Es ist klar, jetzt muss ich eine Funktion verwenden, die eine Zeichenfolge anstelle des Ergebnisses zurückgibt. – Christiaan

Verwandte Themen