Forcer l’image à la une avant de publier un article sur WordPress

Selon la mise en page du site que l’on développe, on peut vouloir qu’une image à la une soit nécessairement renseignée avant que l’article soit publié. Voici un couple de fonctions vous permettant de mettre en place cette restriction.

A l’enregistrement de l’article (du type spécifié dans le tableau $post_types), on vérifie qu’une image à la une est renseignée. Ci ce n’est pas le cas, on passe l’état de l’article en brouillon, et on affiche un message d’erreur.

add_action('save_post', 'kodex_check_thumbnail');
function kodex_check_thumbnail($post_id){
	$post_types = array('post', 'custom_post_type');
	if(!in_array(get_post_type($post_id), $post_types)) return;

	if( !has_post_thumbnail($post_id) ){
		set_transient("has_post_thumbnail", "no");
		remove_action('save_post', 'kodex_check_thumbnail');
		wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
		add_action('save_post', 'kodex_check_thumbnail');
	} else {
		delete_transient("has_post_thumbnail");
	}
}

add_action('admin_notices', 'kodex_thumbnail_error');
function kodex_thumbnail_error(){
	if( get_transient("has_post_thumbnail") == "no" ){
		echo '<div id="message" class="warning"><p>
			<strong>'.__("Vous devez ajouter une image à la une pour publier ce contenu", 'kodex').'</strong>
		</p></div>';
		delete_transient("has_post_thumbnail");
	}
}

Source : Cats Who Code