Essayer de faire en sorte que le plugin CMB2 affiche une image à la taille moyenne par défaut WP de la page. Je peux l'obtenir pour afficher une image, mais cette image peut avoir la taille souhaitée par l'utilisateur. Je préférerais qu'elle soit rognée à une taille fixe.
Dans les fonctions que j'ai configurées dans le CMB:
add_action( 'cmb2_admin_init', 'cmb2_page' );
function cmb2_page() {
$prefix = 'cmb_one_';
$cmb_two->add_field( array(
'name' => __( 'Image Loader', 'cmb2' ),
'desc' => 'Upload an image or enter an URL.',
'id' => $prefix . 'image_two',
'type' => 'file',
'options' => array(
'url' => true,
),
'text' => array(
'add_upload_file_text' => 'Add Image'
),
'query_args' => array(
'type' => array(
'image/jpeg',
'image/png',
),
),
'preview_size' => 'medium', // Image size to use when previewing in the admin.
) );
}
sur la page j'ai:
<?php
echo $image_two = wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two', 1 ), 'medium' );
?>
et je peux obtenir l'image pour montrer si je viens d'utiliser:
<?php
echo '<img src="'. $image_two .'" alt="image dis">';
?>
Mais si je le fais, il n'y a aucun moyen de contrôler la taille de l'image?
Vous pouvez obtenir l'identifiant de la pièce jointe, puis l'utiliser pour obtenir la taille dont vous avez besoin.
https://github.com/CMB2/CMB2/wiki/Field-Types#file
Un téléchargeur de fichiers. Par défaut, il stockera l'URL du fichier et autorisera les pièces jointes ou les URL. Ce type de champ stockera également l'ID de pièce jointe (utile pour obtenir différentes tailles d'image). Il va le stocker dans $ id. '_id' , donc si votre identifiant de champ est wiki_test_image, cet identifiant est stocké dans wiki_test_image_id. Vous pouvez également le limiter à autoriser uniquement les pièces jointes (impossible de saisir manuellement une URL), ce qui est également utile si vous prévoyez d'utiliser l'ID de pièce jointe. L'exemple montre ses valeurs par défaut, avec les valeurs possibles commentées en ligne.
wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two_id', 1 ), 'medium' );
si vous voulez le recadrer à une taille différente:
wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two_id', 1 ), 'different_size' );
et dans functions.php
utilisez add_image_size
add_image_size( 'different_size', 220, 180 );