web-dev-qa-db-fra.com

Comment obtenir l'URL d'une image de champ personnalisée de taille spécifique

J'ai un champ personnalisé "cmb2" avec type->file. et je l'utilise pour télécharger des images.

Si j'utilise:

echo get_post_meta( $post->ID, '_pf_photo1', 'medium' );

je reçois l'URL de l'image complète (pas celle du milieu).

Comment puis-je obtenir l'URL du "moyen"/"vignette" et ainsi de suite ...

2
Ben

La fonction get_post_meta() peut aider à obtenir le champ méta mais ne récupérera pas une taille différente.

En supposant que _pf_photo1 incorpore l'identifiant de la pièce jointe, vous pouvez faire quelque chose comme ça:

// Note the "_id" suffix
$attachment_id = get_post_meta($post->ID, '_pf_photo1_id', true);

Le dernier paramètre pour cette fonction ne peut pas être 'moyen',

Maintenant, vous pouvez utiliser $attachment_id avec une fonction différente selon ce que vous voulez vraiment obtenir (url, élément img ...):

$attachment_element = wp_get_attachment_image( $attachment_id, 'medium' );
echo $attachment_element;

Il existe d'autres moyens d'obtenir des détails pour l'attachement wp_get_attachment_url(), wp_get_attachment_image_src (qui renvoie un tableau avec url, width, height).

Vous trouverez plus de détails pour découvrir ces fonctions ici

J'espère que ça aide !

2
Benoti

Vous pouvez obtenir leIDdu fichier avec _pf_photo1_id, alors il est facile de trouver n'importe quelle taille d'URL:

$file_id = get_post_meta( $post->ID, '_pf_photo1_id', true );

if ( $file_id )
    echo wp_get_attachment_image_url( $file_id, 'medium' );
3
TheDeadMedic