¿Está buscando una forma de requerir una imagen destacada antes de poder publicar una entrada? Este fragmento requerirá que haya agregado una imagen destacada antes de que su entrada pueda ser publicada. Si intenta publicar una entrada sin una imagen destacada después de agregar este fragmento, recibirá este mensaje: “Debe seleccionar Imagen destacada. Su entrada se guarda pero no se puede publicar.”
Instrucciones:
Todo lo que tienes que hacer es agregar este código al archivo functions.php de tu tema o a un plugin específico del sitio:
add_action('save_post', 'wpds_check_thumbnail');
add_action('admin_notices', 'wpds_thumbnail_error');
function wpds_check_thumbnail($post_id) {
// change to any custom post type
if(get_post_type($post_id) != 'post')
return;
if ( !has_post_thumbnail( $post_id ) ) {
// set a transient to show the users an admin message
set_transient( "has_post_thumbnail", "no" );
// unhook this function so it doesn't loop infinitely
remove_action('save_post', 'wpds_check_thumbnail');
// update the post set it to draft
wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
add_action('save_post', 'wpds_check_thumbnail');
} else {
delete_transient( "has_post_thumbnail" );
}
}
function wpds_thumbnail_error()
{
// check if the transient is set, and display the error message
if ( get_transient( "has_post_thumbnail" ) == "no" ) {
echo "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>";
delete_transient( "has_post_thumbnail" );
}
}
Nota: Si es la primera vez que agregas fragmentos de código en WordPress, consulta nuestra guía sobre cómo copiar / pegar fragmentos de código correctamente en WordPress, para que no rompas accidentalmente tu sitio.
Si te gustó este fragmento de código, considera echar un vistazo a nuestros otros artículos en el sitio como: Los 7 mejores plugins de galería de WordPress comparados.
¡Hola! ¿Funciona para la imagen destacada de Woocommerce?
¿Podemos hacerlo también para el título de la entrada?
Es posible que pueda verificar si se ha agregado el título utilizando la función get_the_title().
Esto está creando demasiados borradores automáticos no deseados en el sistema
Hola Visal,
¿Por qué se están creando borradores automáticos?
¿Resolviste este problema?
Saludos
Gracias
Hola Kevin. Estoy creando un plugin de funciones personalizadas donde agregué este fragmento y parece funcionar bien hasta que voy a eliminar un borrador/entrada. No puedo eliminarlo, ya que solo me da el mensaje “Debe seleccionar una Imagen destacada. Su entrada se guarda pero no se puede publicar.” Tengo que eliminar el código para poder eliminar una entrada.
Puse el código de la función (wpds_check_thumbnail) dentro de:
if ( ‘trash’ != get_post_status( $post_id ) ) { //Código aquí }
¡Genial! Esto es bastante útil para mí en este momento. ¿Se puede ajustar para que funcione solo en un tipo de publicación o categoría determinada?