[wp]サムネイル機能の追加と確認

地味なところ。

仕様の話

WordPressにはサムネイル機能があるのだけど、WP自体の仕様としてアクティブになっていない。使えるんだけど、使うためには設定が必要だということ。デフォルトのテーマだと使える状態になってるので、テーマを初めて自作する人はビビると思う。標準でアクティブにしてくれていいと思うんだけど、不都合があるのかもしれない。

アクティブにする

functions.phpに以下の内容を足す。

add_theme_support('post-thumbnails');

この一行でWP内のアイキャッチ(サムネイル)が有効化され、投稿だけでなく固定ページも対象。投稿ページの右側にその枠が追加される。

管理画面の一覧で表示

Cocoonをはじめ有名所のテーマは元々用意されていて、個別に追加する必要がなかったりする。

functions.phpに以下の内容を足す。

function add_posts_columns_thumbnail($columns) {
  $columns['thumbnail'] = 'サムネイル';
  return $columns;
}
function add_posts_columns_thumbnail_row($column_name, $post_id) {
  if ( 'thumbnail' == $column_name ) {
    $thumb = get_the_post_thumbnail($post_id, array(100,100), 'thumbnail');
    echo ( $thumb ) ? $thumb : '-';
  }
}
add_filter( 'manage_posts_columns', 'add_posts_columns_thumbnail' );
add_action( 'manage_posts_custom_column', 'add_posts_columns_thumbnail_row', 10, 2 );

一覧に枠を作って画像を出力するって内容。書き方は色々あるので参考サイトによって違いがある。でもやることは一緒。

これを入れると投稿、カスタム投稿の一覧に追加される。固定ページには付かない。

見れたから何だよってこともあるんだけど、あったらあったで便利だったりもする。追加するよりもなくなったときに良さが分かる感じのやつ。

ページ上での表示について

wp自体の機能としてアイキャッチの追加があるわけで、だから出力も用意されてる。

このあたりを使い分けてうまいことやっていく感じ。

  • the_post_thumbnail()
  • get_the_post_thumbnail()
  • has_post_thumbnail()

詳細は公式を見るのがいい。

https://wpdocs.osdn.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/the_post_thumbnail

アイキャッチの登録がない場合

theBASEとか、画像の登録がない場合は「NO IMAGE」的な画像が登録されるサービスもあるけど、Wordpressにはそういうものはない。登録されてたら画像があって、登録がなかったら画像はない。

「画像がなければこれを表示する」ってのをテーマ上でやっていくことになる。

それこそhas_post_thumbnail()の出番で、条件分岐で書いていく。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/has_post_thumbnail

代替画像を用意せずに、無かったらないで何も表示しないって組み方もある。記事ページのアイキャッチ枠は特に、大体そうしてると思う。当ブログでもそうだし。

コメント

タイトルとURLをコピーしました