wake-up-neo.com

Wie füge ich das vorgestellte Bild nach dem ersten Absatz zu the_content hinzu?

Mein Problem:

Ich versuche, einen Filter zu erstellen, der das ausgewählte Bild eines Beitrags zum Inhalt hinzufügt, damit der erste Absatz des Inhalts vor diesem Bild angezeigt wird.

Was ich grundsätzlich erreichen will:

<p>First Paragraph of the_content</p>
<img>The Post's Featured Image</img>
<p>The rest of the_content</p>

Ich kann mir jemand helfen.

Danke im Voraus!

4
Anders

Sie können dies mit dem Filter 'the_content' tun:

add_filter( 'the_content', 'insert_featured_image', 20 );

function insert_featured_image( $content ) {

    $content = preg_replace( "/<\/p>/", "</p>" . get_the_post_thumbnail($post->ID, 'post-single'), $content, 1 );
    return $content;
}

Natürlich können Sie der the_post_thumbnail () -Funktion Optionen hinzufügen, um die Größe der Miniatur festzulegen, die Sie verwenden möchten usw. http://codex.wordpress.org/Function_Reference/the_post_thumbnail

2
FlashingCursor

Technisch gesehen wäre die schnellste Lösung die Verwendung eines Shortcodes in Ihren Inhalten. Andernfalls benötigen Sie einen guten Griff für reguläre Ausdrücke, um das Bild mithilfe eines Filters zwischen Absätzen zu speichern.

Der beste Weg wäre, dies zu functions.php hinzuzufügen

<?php 

function featured_image($post) {
    if (has_post_thumbnail($post->id))
        the_post_thumbnail('large');
}

add_shortcode('featured_image', 'featured_image');
?>

Geben Sie nach Ihrem ersten Absatz im Inhalt einfach [featured_image] ein.

1
bgallagh3r

Hinweis -

Mit einer Art Regex-Matching können Sie dies tun. Hier ist einer von ihnen. Fügen Sie dieses Snippet einfach in die functions.php-Datei Ihres Themas ein, damit der Inhalt der Variablen $img direkt nach dem ersten Absatz (d. H. Nach dem ersten Auftreten des </p>-Tags) in Ihrem Beitragsinhalt gedruckt wird.

wenn Sie den Wert der Miniaturansicht/des empfohlenen Bilds für den aktuellen Beitrag an $ img übergeben, wird dieses Bild nach dem ersten Absatz gedruckt.

// Goes into functions.php file
// Adds $img content after after first paragraph (!.e. after first `</p>` tag)
add_filter('the_content', function($content)
{
   $url = wp_get_attachment_url( get_post_thumbnail_id($post->ID) );
   $img = '<img src="'.$url.'" alt="" title=""/>';
   $content = preg_replace('#(<p>.*?</p>)#','$1'.$img, $content, 1);
   return $content;
});

Geändert this , um eine Variable nach dem ersten Absatz anzufügen.

1
amit