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)


Comments

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *