例えばフルサイズ(元画像)が、
横向きの画像なら640×360
縦向きの画像なら360×640
でトリミングしたい場合。
まず、functions.php に下記のように書けばメディアにアップロードすると設定したサイズで自動生成されるようになります。
add_image_size( 'landscape', 640, 360, true ); add_image_size( 'portrait', 360, 640, true );
で、フルサイズ(元画像)がどっち向きかをチェックして、
横向きならlandscape
縦向きならportrait
のメディアが選択されるようにしてあげます。
$attachment = wp_get_attachment_image_src( $attachment_id, 'full' ); $width = esc_attr ( $attachment[1] ); $height = esc_attr ( $attachment[2] ); $orientation = $width >= $height ? 'landscape' : 'portrait'; $src = wp_get_attachment_image_url( $attachment_id, $orientation ); echo '';
$attachment_id にはメディアのIDが入ります。
カスタムフィールドなら、
$attachment_id = get_post_meta( $post->ID, 'meta_key', true );
アイキャッチなら、
$attachment_id = get_post_thumbnail_id( $post->ID );
で取得できます。