Bom dia to com um problema para retornar as imagens do corpo do post alguém sabe como fazer ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia to com um problema para retornar as imagens do corpo do post alguém sabe como fazer ?
Oi Leonardo, quando precisei fazer isso uma vez a única forma que encontrei era pegar todo o conteúdo do post com o get_post() e depois fazer uma expressão regular bem chatinha para capturar as imagens e transformar o resultado em um array.
Pegou a ideia?
Aqui tem um exemplo de como fazer isso:
https://bavotasan.com/2009/retrieve-the-first-image-from-a-wordpress-post/
Opa galera muito obrigado pela ajuda mas consegui solucionar essa parte do problema ultilizando uma função que me retorna pedaços de string
Segue ela
Function RetornaArrayStringsDelimitadas($strTexto, $strInicio, $strFim){
$strAuxTexto = $strTexto;
$iCount = 0;
$aryDados = array();
while (strpos($strAuxTexto, $strInicio, $iCount) != false && strpos($strAuxTexto, $strFim, $iCount) != false) {
$intPosicaoOcoInicial = strpos($strAuxTexto, $strInicio, $iCount) + strlen($strInicio);
$intPosicaoOcoFinal = strpos($strAuxTexto, $strFim, $intPosicaoOcoInicial);
if ($intPosicaoOcoInicial > $intPosicaoOcoFinal){
exit;
}else{
$strTextoRetorno = substr($strAuxTexto, $intPosicaoOcoInicial, ($intPosicaoOcoFinal - $intPosicaoOcoInicial));
}
if (!empty($strTextoRetorno)){
$aryDados[] = $strTextoRetorno;
}
//==> Recebe a posicao final
$iCount = $intPosicaoOcoFinal;
}
return $aryDados;
}
e aqui um exemplo usando
$aryTeste = RetornaArrayStringsDelimitadas($post1->post_content, '<img', '>');
var_dump($aryTeste);
foreach ($aryTeste as $imagem) {
$width = RetornaArrayStringsDelimitadas($imagem, 'width="', '"');
$height = RetornaArrayStringsDelimitadas($imagem, 'height="', '"');
$caminho = RetornaArrayStringsDelimitadas($imagem, 'xxxx', '"');
$image = WideImage::load(".." . $caminho[0]);
var_dump($image);
$resized = $image->resize($width[0], $height[0]);
$resized->saveToFile(".." . $caminho[0]);
//exit();
echo "<img src='http://localhost/xxxx" . $caminho[0] . "'>";
}
Me parece complicado, mas caso o problema tenha sido resolvido, marca o tópico como solucionado, por favor? Ou posta aqui se precisar de ajuda ainda nesse assunto.