Bom dia to com um problema para retornar as imagens do corpo do post alguém sabe como fazer ?
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.