Codeworks Notes

 2018-08-12

 2020-03-23

Wordpress
functions.php
バックエンド

アイキャッチまわりの設定

アイキャッチの有効化/無効化は fuctions.php で行う。

add_theme_support( 'post-thumbnails' );
set_post_thumbnail_size([W(px)], [H(px)], true/false );

「true」は切り抜きモードになる。
set_post_thumbnail_size を設定すると指定されたサイズで画像がリサイズされますが、Retina 解像度でアップロードしたものまでダウンスケールされるので「それじゃ困る!」って場合は設定を追加します。

Retina 解像度に対応する場合

functions.php に以下のコードを追記します。
サイズは適宜調整し、@2xの値は元のサイズを2倍すること。

add_image_size("my-image-size", 320, 240, true);
add_image_size("my-image-size@2x", 640, 480, true);


add_filter("post_thumbnail_html",function( $html, $post_id, $post_thumbnail_id, $size, $attr ){
    $retina_size = $size."@2x";
    if(!has_image_size($retina_size)) {
        return $html;
    }

    if( $image = image_downsize($post_thumbnail_id, $retina_size) and $image[3] ) {
        $srcset_image = wp_get_attachment_image_src( get_post_thumbnail_id(), $retina_size );
        $html = wp_get_attachment_image( $post_thumbnail_id, $size, false, wp_parse_args($attr, [ "srcset" => $srcset_image[0] . ' 2x']) );
    }

    return $html;

}, 10, 5);