Wordpress: Como recuperar a primeira imagem de um post?

Publicado por Jefferson em

Wordpress

WordPress, como recuperar a primeira imagem de um post?

Olá a todos, recentemente passei por isso quando estava dando manutenção em um tema, o problema maior é que quando a imagem utilizada já existia na biblioteca ou seja, não tinha sido “subida” ao criar o post ela simplesmente não aparecia…

Estava utilizando um método padrão para recuperar anexos vinculados a postagem, mas neste caso esse método não funcionva. Então utilizei de outra forma para recuperar a imagem da forma que ela está no post.

Como fazer?

Para fazer isso, criei o seguinte método no arquivo functions.php

function catch_that_image()
{
global $post, $posts;
$first_img = ”;
$imgFinal = ”;

ob_start();
ob_end_clean();

$output = preg_match_all(‘/<img.+src=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$first_img = $matches [1] [0];

if(empty($first_img)){
$first_img = “/images/default.jpg”;
}

$output = preg_match_all(‘/<img.+width=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$width = $matches [1] [0];

$output = preg_match_all(‘/<img.+height=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$height = $matches [1] [0];

$output = preg_match_all(‘/<img.+class=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$class = $matches [1] [0];

$output = preg_match_all(‘/<img.+style=[\'”]([^\'”]+)[\'”].*>/i’, $post->post_content, $matches);
$style = $matches [1] [0];

$imgFinal = ‘<img src=”‘ . $first_img . ‘” width=”‘ . $width . ‘” heigh=”‘ . $height . ‘” class=”‘ . $class . ‘” style=”‘ . $style . ‘” />’ ;

return $imgFinal;
}

 

E depois?

Para utilizar o código basta inserir aonde quiser que a imagem seja exibida.

É isso ai pessoal espere que ajude quem estiver passando por este problema.