カスタム投稿のアイキャッチ画像が表示されない原因

カスタム投稿のアイキャッチ画像を表示させるには下記の点を確認する必要があります。

  • add_theme_support( 'post-thumbnails' );が記述されている
  • 対象のカスタム投稿に'supports' => [ 'thumbnail' ]が記述されている

カスタム投稿にアイキャッチ画像を実装するにはadd_theme_support( 'post-thumbnails' );が必要です。これが抜けているとカスタム投稿には反映されないので気を付ける点です。

アイキャッチ画像を実装する

まずfunctions.phpを開きadd_theme_support( 'post-thumbnails' );を追加します。

function my_theme_setup(){
	add_theme_support('post-thumbnails');
}
add_action('after_setup_theme', 'my_theme_setup');

次にsupportsを追加していきます。基本的には'thumbnail'だけでもいいのですが、バージョンによってレイアウト崩れの原因にもなるので、デフォルトの投稿タイプのブロックエディタ有効させるために必要な値を記述しておきます。

add_action( 'init', 'register_post_type_sample' );
function register_post_type_sample(){
	$labels = [
		'name' => 'Sample',
	];

	$args = [
		'labels' => $labels,
		'public' => true,
		'show_in_rest' => true,
		'has_archive' => true,
		'supports' => ['title', 'editor', 'post-formats', 'thumbnail'],
	];
	register_post_type('sample', $args);
}