Establecer un mínimo de palabras para publicar un post

Si en tu web de WordPress tienes varios redactores con permisos para publicar, quizá te interese este post. En él, vamos a ver como establecer una regla que prohíba publicar un post si no tiene un número mínimo de palabras.

Como siempre en WordPress, existen plugins que se encargan de añadir opciones como estas, pero desde Pc-Solución nos gusta prescindir de ellos cuando exista la posibilidad de hacer lo mismo con código en nuestra web y sin plugins. A continuación, vamos a ver como establecer un mínimo de palabras para publicar un post o entrada en WordPress.

 

Prohibir publicar un post con un mínimo de palabras

Con el siguiente código, nos aparecerá un mensaje de advertencia cada vez que un usuario intente publicar un post que no cumple un mínimo de palabras. Debemos añadir el código al archivo functions.php de nuestro theme respetando la sintaxis del lenguaje.

function display_short_error_message($messages)
{

global $post;
$content = $post->post_content;
if (str_word_count($content) < 100 ) {
$error_message = 'El post debe tener al menos 100 palabras';
add_settings_error('post_short_error', '', $error_message, 'error');
settings_errors( 'post_short_error' );
$post->post_status = 'draft';
wp_update_post($post);
return;
}

return $messages;

}

add_action('post_updated_messages', 'display_short_error_message');

En este ejemplo hemos establecido el mínimo en 100, pero puedes modificarlo por otro valor que se adapte a lo que necesites al igual que el texto mostrado de la advertencia.

 

 

Advertencia al publicar un post con un mínimo de palabras

Con el código anterior en el functions.php de nuestro theme activo, prohibíamos la publicación de un post o entrada. Con el siguiente código, el post se publicará igualmente, pero se mostrará un mensaje de advertencia al usuario que lo ha creado.

function minWord($content)
{
    global $post;
    $content = $post->post_content;
    if (str_word_count($content) < 100 ) //Limite de 100 palabras
    wp_die( __('Error: Tu post no cumple el mínimo de 100 palabras.') );
}
add_action('publish_post', 'minWord');

También, igual que en el anterior, podemos modificar tanto el número mínimo de palabras como el mensaje de advertencia del ejemplo.