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 ...
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 !
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' );