web-dev-qa-db-fra.com

Comment obtenir que CMB2 affiche une seule image à une taille spécifique

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?

2
Noski

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 );
2
sandrodz