Comme le titre le dit, je veux un plugin/une fonction pour empêcher/informer l’utilisateur quand il essaie de publier le message sans définir l’image sélectionnée.
DE L'AIDE ???
La has_post_thumbnail()
fonctionne pour moi, dans WP versions 3.4.1 et autres plus récemment. Mais dans cette logique, parce que WP publiera la publication même avec exit
ou wp_die()
ou tout autre élément permettant de terminer le script PHP. Pour éviter que la publication ne reste avec le statut publié, vous devrez la mettre à jour avant de terminer. Regardez le code ci-dessous:
add_action('save_post', 'prevent_post_publishing', -1);
function prevent_post_publishing($post_id)
{
$post = get_post($post_id);
// You also add a post type verification here,
// like $post->post_type == 'your_custom_post_type'
if($post->post_status == 'publish' && !has_post_thumbnail($post_id)) {
$post->post_status = 'draft';
wp_update_post($post);
$message = '<p>Please, add a thumbnail!</p>'
. '<p><a href="' . admin_url('post.php?post=' . $post_id . '&action=edit') . '">Go back and edit the post</a></p>';
wp_die($message, 'Error - Missing thumbnail!');
}
}
<?php
// Something like that should help, but you'll have to play with it to get it working:
// inside your functions.php file
function wpse16372_prevent_publish()
{
if ( ! is_admin() )
return;
// This should be ok, but should be tested:
$post_id = $GLOBALS['post']->ID;
echo '<pre>Test for post ID: '; print_r( $post_id ); echo '</pre>';// the actual test
// has_post_thumbnail() doesn't work/exist on/for admin screens (see your error msg). You need to find another way to test if the post has a thumbnail. Maybe some Javascript?
//if ( ! has_post_thumbnail( $post_id );
if ( ! has_post_thumbnail( $post_id ) )
{
?>
<!-- //
<script language="javascript" type="text/javascript">
alert( 'you have to use a featured image' );
</script>
// -->
<?php
exit; // abort
}
}
add_action( 'save_post', 'wpse16372_prevent_publish', 100 );
?>