[WordPress General] 投稿に thumbnail / eye catch を表示する
投稿にサムネイル画像を追加します。
Contents
アイキャッチ機能とは
GUI管理ツールで変更できるサムネール機能。
自作する場合など、テーマで機能を有効にする必要がある。
「ダッシュボード > 設定 > メディア」で、投稿画面で使う画像のサイズを設定できます。
また、生成された画像は、以下で確認できます。
/wp-content/uploads/
- filename-162×100.png
- filename-324×130.png
- filename.png
画像のリサイズの他に、オリジナルファイル名に設定したサイズも付与されます。
アイキャッチ機能を有効にする
アイキャッチ機能を有効にするには、functions.php に下記を記載します。
add_theme_support( 'post-thumbnails' );
必要なテーマファイル内で the_post_thumbnail();
を追加すると、そこにアイキャッチが表示されます。
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}
?>
例えばサムネールがなければ noimage を表示する。
<?php if (has_post_thumbnail()) : ?>
<?php the_post_thumbnail(); ?>
<?php else: ?>
<img src="<?php echo get_template_directory_uri(); ?>/img/noimage.png">
<?php endif; ?>
標準で用意されているサムネイルとそのサイズ
「ダッシュボード > 設定 > メディア」の設定は、このように引っ張れます。
// without parameter -> Thumbnail
the_post_thumbnail();
// サムネイル (デフォルト 150px x 150px :最大値)
the_post_thumbnail('thumbnail');
// 中サイズ (デフォルト 300px x 300px :最大値)
the_post_thumbnail('medium');
// 大サイズ (デフォルト 640px x 640px :最大値)
the_post_thumbnail('large');
// フルサイズ (アップロードした画像の元サイズ)
the_post_thumbnail('full');
functions.php 内に以下を追記すると、サムネイルの初期値を設定できます。
true オプションを付けると、縦横比にあわせて縮小後、はみ出した部分をクロップしてくれます。
set_post_thumbnail_size(324, 200, true);
medium, large サイズの初期値の定義は分かりませんでした。
ご存じの方いましたら教えてください。
カスタムサイズを追加する
the_post_thumbnail(()
にオプションを渡すと、表示されるサイズを指定することができます。
the_post_thumbnail( array(100,100) );
また、functions.php に必要なサイズを add_image_size()
で定義して利用することができます。
function eyecatch() {
add_theme_support( 'post-thumbnails', array('post') );
set_post_thumbnail_size(240, 160, true);
add_image_size('index-post-thumbnail', 70, 70, true);
}
add_action( 'after_setup_theme', 'eyecatch' );
追加したサイズは、下記のように呼び出せます。
<?php the_post_thumbnail('index-post-thumbnail'); ?>
サムネイルにクラスを追加する
the_post_thumbnail('thumbnail', array('class' => 'alignleft'));
サムネイル画像を一括で作り直す
サムネイルを作り直すプラグインがあるようで便利そうです。
補遺
画像の出し分け