Obtenha imagem em destaque com tamanho personalizado fora do WordPress

Eu tenho um blog WordPress que é hospedado como um sub-diretório de um aplicativo web. A instalação do WordPress é intacta e as modificações são feitas no nível do tema. A página inicial do aplicativo da Web precisa mostrar as postagens recentes do blog. Então eu tenho o seguinte código para exibir as postagens recentes:

$array = array(); $query = "SELECT * FROM wp_posts WHERE post_status=:publish AND post_type=:post_type"; $stmt = $this->dbj->prepare($query); $stmt->execute(array( ':publish' => 'publish', ':post_type' => 'post' )); if ($stmt->rowCount() > 0) { while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { $id = $row["ID"]; if ($row["post_name"] == '') { $slug = $row["ID"]; } else { $slug = $row["post_name"]; } $content1 = strip_tags($row["post_content"]); $image_prepare = $this->dbj->prepare('SELECT wp_postmeta.meta_id, wp_postmeta.post_id, wp_postmeta.meta_key, wp_postmeta.meta_value FROM wp_postmeta INNER JOIN wp_posts ON wp_posts.ID = wp_postmeta.post_id WHERE wp_postmeta.meta_key = :meta_key AND wp_posts.post_parent = :pid'); $image_prepare->execute( array( ':pid' => $id, ':meta_key' => '_wp_attached_file' ) ); $image_fetch = $image_prepare->fetchAll(); foreach ($image_fetch as $image_row) { $image_name = $row['post_title']; $image_path = $image_row['meta_value']; } if (strlen($content1) > 200) { $content = substr($content1, 0, 200) . '...'; } else { $content = nl2br($content1); } $array[] = array( 'image_path' => $image_path, 'image_name' => $image_name, 'slug' => $row["post_name"], 'content' => $content, 'title' => $row['post_title'] ); } return $array; } 

Estou recebendo o URL da imagem em tamanho real. Eu fiz um redimensionamento no meu arquivo functions.php no tema:

 add_theme_support('post-thumbnails'); add_image_size('home-size', 214, 300); add_image_size('home-featured', 300, 300); add_image_size('jobs-thumb', 50, 75); 

O problema é que as imagens redimensionadas no diretório de carregamentos nem sempre possuem o image-name-300x300.jpg para o image-name-300x300.jpg home-featured . Em vez disso, eles têm valores randoms para a altura dependendo da proporção da imagem no nome do arquivo (Ex: image-name-300x220.jpg ). E regenei as miniaturas novamente, mas ainda o mesmo nome de arquivo. Como faço para obter 'home-featured' solução acima da solução acima?

Solutions Collecting From Web of "Obtenha imagem em destaque com tamanho personalizado fora do WordPress"

Esta questão não é sobre o WordPress, mas sobre o PHP. De qualquer forma, se você conhece o nome completo da imagem, você sabe que o nome do arquivo desejado possui a seguinte estrutura: imagename-300x* . Isso você pode alimentar a function PHP glob , que retornará uma matriz de todos os arquivos que correspondam ao padrão fornecido. Então, supondo $image contiver o caminho para a imagem completa que você faria:

 $matches = glob ($image . '-300x'); $homef-image = $matches[0];