¿Cómo agrego la imagen destacada a the_content después del primer párrafo?

4

Mi problema:

Estoy tratando de crear un filtro que agregue la imagen destacada de una publicación a the_content, para que pueda mostrar el primer párrafo de the_content antes de esta imagen.

Lo que básicamente quiero lograr:

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

Alguien me puede ayudar.

Gracias de antemano!

    
pregunta Anders 09.08.2012 - 03:08

3 respuestas

2

Puedes hacer esto usando el filtro 'the_content':

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;
}

Por supuesto, puede agregar opciones a la función the_post_thumbnail () para definir qué tamaño de miniatura desea utilizar, etc. ... enlace

    
respondido por el FlashingCursor 09.08.2012 - 04:13
1

Técnicamente, la solución más rápida sería utilizar un shortcode en tu contenido. De lo contrario, necesitará un buen control de expresiones regulares para volcar la imagen entre párrafos utilizando un filtro.

La mejor manera sería agregar esto a functions.php

<?php 

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

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

Después de su primer párrafo en el contenido, simplemente escriba [featured_image] .

    
respondido por el bgallagh3r 09.08.2012 - 03:21
1

Nota -

Usando algún tipo de coincidencia de expresiones regulares puedes hacer esto. Aquí está uno de ellos. Simplemente coloque este fragmento en el archivo functions.php de su tema para que imprima el contenido de la variable $img justo después del primer párrafo (es decir, después de la primera aparición de la etiqueta </p> ) en el contenido de su publicación.

pasar el valor de la imagen actual / miniatura de las publicaciones actuales a $ img imprimirá esa imagen después del primer párrafo.

// 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;
});

Se modificó esto para agregar la variable después del primer párrafo.

    
respondido por el amit 09.08.2012 - 03:50

Lea otras preguntas en las etiquetas