web-dev-qa-db-ja.com

CMB2に特定のサイズの単一の画像を表示させる方法

CMB2プラグインに、ページのWPデフォルトの中サイズで画像を表示させようとしています。画像を表示させることはできますが、その画像はユーザーが望む任意のサイズにすることができます。固定サイズに切り取ったほうがいいでしょう。

私は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.
           ) );

        }

私が持っているページ上で:

      <?php
          echo $image_two = wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two', 1 ), 'medium' );
      ?>

そして、私が使用するだけで画像を表示させることができます。

      <?php
          echo  '<img src="'. $image_two .'"  alt="image dis">';
      ?>

しかし、これを実行した場合、画像サイズを制御する方法はありませんか?

2
Noski

添付ファイルのIDを取得し、それを使用して必要なサイズを取得できます。

https://github.com/CMB2/CMB2/wiki/Field-Types#file

ファイルアップローダデフォルトでは、ファイルのURLを保存し、添付ファイルまたはURLを許可します。 このフィールドタイプには添付ファイルIDも格納されます(さまざまな画像サイズを取得するのに役立ちます)。 $ idに保存します。 '_id' なので、あなたのフィールドIDがwiki_test_imageの場合、IDはwiki_test_image_idに格納されます。添付ファイルのみを許可するように制限することもできます(手動でURLを入力することはできません)。これは、添付ファイルIDを使用する予定がある場合にも役立ちます。例ではデフォルト値を示しています。可能な値はインラインでコメントされています。

wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two_id', 1 ), 'medium' );

あなたがそれを異なるサイズにトリミングしたいならば:

wp_get_attachment_image( get_post_meta( get_the_ID(), 'cmb_one_image_two_id', 1 ), 'different_size' );

そしてfunctions.phpでは add_image_size を使います

add_image_size( 'different_size', 220, 180 );
2
sandrodz