地味なところ。
仕様の話
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()
詳細は公式を見るのがいい。
アイキャッチの登録がない場合
theBASEとか、画像の登録がない場合は「NO IMAGE」的な画像が登録されるサービスもあるけど、Wordpressにはそういうものはない。登録されてたら画像があって、登録がなかったら画像はない。
「画像がなければこれを表示する」ってのをテーマ上でやっていくことになる。
それこそhas_post_thumbnail()の出番で、条件分岐で書いていく。
代替画像を用意せずに、無かったらないで何も表示しないって組み方もある。記事ページのアイキャッチ枠は特に、大体そうしてると思う。当ブログでもそうだし。
コメント