Com a função PHP attachment_url_to_postid() você tenta obter o ID de uma mídia enviada para o WordPress através de sua URL. Caso não seja encontrado uma imagem, será retornado 0
. Segue abaixo um exemplo de uso:
<?php
$imagem_id = attachment_url_to_postid( $imagem_url );
Code language: PHP (php)
Nos meus testes a função só funcionou para as URLs da imagem original (ex: imagem.jpg
), retornando 0
para os tamanhos redimensionados automaticamente pelo próprio WordPress (ex: imagem-768x512.jpg
).
Esta função é bem útil quando você tem somente a URL da imagem salvo em um campo adicional e precisa do seu ID para obter um tamanho personalizado ou mais informações dela.
Exibindo o número de tamanhos de uma imagem do WordPress a partir da sua URL
Como exemplo prático fiz um código que conta o número de tamanhos adicionais de uma imagem gerados automaticamente pelo WordPressa a partir da sua URL. Para obter os metadados da imagem, utilizei a função PHP wp_get_attachment_metadata().
<?php
$imagem_url = "https://www.danielkossmann.com/wp-content/uploads/2017/06/2017-daniel-kossmann-ferraz.png";
$imagem_id = attachment_url_to_postid( $imagem_url );
if ( $imagem_id ) {
$imagem_metadados = wp_get_attachment_metadata( $imagem_id );
if ( $imagem_metadados && !empty( $imagem_metadados['sizes'] ) ) {
$imagem_tamanhos = count( $imagem_metadados['sizes'] );
echo "A imagem com o ID $imagem_id tem $imagem_tamanhos tamanhos adicionais.";
} else {
echo "Não foi possível obter os metadados da imagem com ID = $imagem_id.";
}
} else {
echo "O ID da imagem não foi encontrado.";
}
Code language: PHP (php)
Deixe um comentário