wordpressはwp_queryなどでパラメータがわかりやすい形で出てくれます!
参照:公式codex
ただ、アイキャッチを取得する方法については一発で取得する方法があまりなかったので、関数化してみました。
テーマ下のfunctions.phpに以下を記述します。
php5.functions.php
function get_featured_image_meta($post_id){
$image_id = get_post_thumbnail_id($post_id);
//wp_get_attachment_image_src=添付された画像の"url"、"width"、"height","真偽値"を配列として返す関数
$image_values = wp_get_attachment_image_src($image_id,$size,false);
//代替テキストとか説明とか
$alt = get_post_meta($image_id, '_wp_attachment_image_alt', true);
$description = get_post($image_id)->post_content;
//無理やりだけど配列でないものは配列に
$values = array_merge(array($image_id),$image_values,array($alt),array($description));
//$valuesのキーに名前をつける
$keys = array('id','url','width','height','bool','alt','description');
//キーと配列をがっちゃんこ
$image_data = array_combine($keys, $values);
return $image_data;
}
php.single.php
var_dump($image_data);
//記事ページでのdump結果
//Applications/MAMP/htdocs/wordpress/wp-content/themes/amadeus/single.php:
array (size=6)
'id' => string '6' (length=1)
'url' => string 'http://localhost/wordpress/wp-content/uploads/2017/12/coffee.jpg' (length=69)
'width' => int 2000
'height' => int 1200
'bool' => false//初期値
'alt' => string '美味しいコーヒー' (length=24)
'description' => string 'コーヒーですね' (length=21)
var_dump($image_data);
すると、画像の必要情報がすべて配列で出力されるし、
$image_data['url']みたいな形でデータを取得できると
テンプレート側でなんのデータなのか理解しやすいかなと思います。
なんかもっときれいな書き方あると思うのでぜひ教えていただきたいです