How to prevent publishing posts under a minimum number of words on WordPress
<?php
/**
* Prevent publishing posts under a minimum number of words.
*
* @param int $post_id The id of the post.
* @param WP_Post $post The post object.
*
* @return void
*/
function wpcode_snippet_publish_min_words( $post_id, $post ) {
// Edit the line below to set the desired minimum number of words.
$word_count = 100;
if ( str_word_count( $post->post_content ) < $word_count ) {
wp_die(
sprintf(
// Translators: placeholder adds the minimum number of words.
esc_html__( 'The post content is below the minimum word count. Your post needs to have at least %d words to be published.' ),
absint( $word_count )
)
);
}
}
add_action( 'publish_post', 'wpcode_snippet_publish_min_words', 9, 2 );
Source: https://gist.github.com/AndreFCAmorim/d796e395d19d75a7bcb286bf49e8ed09#file-min-word-count-post-php