WordPressの投稿でアイキャッチを設定しなかった場合に自動的に設定する方法

,

WordPressでは投稿にアイキャッチ画像を設定することができますが、アイキャッチ画像を作るのは意外と面倒です。

しかし、アイキャッチ画像を設定していないと投稿の一覧などで見栄えがあまりしないので、基本的にはアイキャッチ画像を設定したいです。

そこで、どんな投稿にも使えるような汎用性の高いアイキャッチ画像を作成し、投稿にアイキャッチ画像が設定されていない場合はそのアイキャッチが自動設定されるようにする方法をご紹介します。

functions.phpに追加するだけで実現できます。

投稿のアイキャッチ画像を自動設定(デフォルトに)する方法

すべての投稿タイプで自動的にアイキャッチを設定する場合はこのコードを使います。

function default_thumbnail( $post_id ) {
	$post_thumbnail = get_post_meta( $post_id, $key = '_thumbnail_id', $single = true );
	$default_thumbnail_id = '4674';
	if ( !wp_is_post_revision( $post_id ) ) {
		if ( empty( $post_thumbnail ) ) {
			update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = $default_thumbnail_id );
		}
	}
}
add_action( 'save_post', 'default_thumbnail' );

3行目でメディアにアップロードした画像のIDを設定します。

カスタム投稿タイプのアイキャッチ画像を自動設定(デフォルトに)する方法

場合によってはカスタム投稿タイプにアイキャッチ画像を設定できるようにしている事もあると思いますので、下記のように条件を追加することで特定の投稿タイプのときだけアイキャッチを自動設定することができます。

function default_thumbnail( $post_id ) {
	$post_thumbnail = get_post_meta( $post_id, $key = '_thumbnail_id', $single = true );
	$default_thumbnail_id = '4674';
	if ( !wp_is_post_revision( $post_id ) && get_post_type( $post_id ) == 'portfolio' ) {
		if ( empty( $post_thumbnail ) ) {
			update_post_meta( $post_id, $meta_key = '_thumbnail_id', $meta_value = $default_thumbnail_id );
		}
	}
}
add_action( 'save_post', 'default_thumbnail' );

4行目で投稿タイプが「portfolio」の場合のみアイキャッチ画像を自動設定する指定にしています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です