ホーム > ブログ > CMSTips > WordPressの画像のリサイズ

WordPressの画像のリサイズ

2015.11.19

おはです、銀ねこです。

眠れない夜はブログ書きます。最近は忙しい合間にいかにブログを書くかがストレス発散ポイントになってます。気がつけばチリも積もればという感じで100記事突破してました。今回はカスタムフィールドに登録した画像のリサイズの仕方についてメモっておきます。

functions.phpでリサイズを登録

リサイズできるようにするためにはまず、アイキャッチを有効にしなければいけません。

functions.phpに以下コードを追記します。

  1. add_theme_support('post-thumbnails');//アイキャッチを有効にする

WordPressでは画像をアップロードしたときに、リサイズした画像を生成することができます。

なのでadd_image_size()でリサイズする画像サイズを登録します。

add_image_size( $name, $width, $height, $crop );

  • $name…新しい画像サイズの名前
  • $width…画像の幅(px)
  • $height…画像の高さ(px)
  • $crop…画像を切り抜くか否か(初期値はfalse)

ただ、画像サイズ名に予約名があるのでそれ以外で指定します。

  • thumb
  • thumbnail
  • medium
  • large
  • post-thumbnail

ということで、「newResizeImage」という名前で画像サイズを作るとするとこんな感じになります。

  1. add_image_size('newResizeImage', 200, 200 ,true);

出力したいカスタムフィールドの画像情報を取得します。

get_post_meta($post_id, $key, $single);

  • $post_id…カスタムフィールドを取得したい投稿のID
  • $key…取得したい値のキー名の文字列。オプションで初期値はnull
  • $single…初期値はfalse。falseでカスタムフィールドの配列を返す。true をセットした場合、文字列として単一の結果を返す。

わざわざ配列にする必要はないのでtrueをセット。
IDは時と場合によるのでですが、whileなどで回してなりして取得します。今回は割愛します。

  1. get_post_meta($post->ID, 'customImage', true)

あとは画像をwp_get_attachment_image_src()で画像情報を取得します。

取得できる値は配列で以下のようになってます。

  • [0] => url
  • [1] => width
  • [2] => height
  • [3] => 真偽値: リサイズされいている場合は true、元のサイズの場合は false

なのでパスだけ取得したいときは以下のような感じになります。

  1. $imagepath = wp_get_attachment_image_src(get_post_meta($post->ID, 'photo1', true), 'newResizeImage');
  2. $imagepath[0] //画像のパス

この記事のタグ