How to set post to draft and not publish if the_content contains certain words?

Something like this? // You’ll want to programmatically get the post ID $post_id = 1; // Get the posts’ content $post_content = get_the_content(null, false, $post_id); // Using stripos() is case-insensitive to check for your phrase if(stripos($post_content, ‘specific words’) !== false) { // Sets the post’s status back to “draft” wp_update_post(array( ‘ID’ => $post_id, ‘post_status’ => … Read more

Prevent post from being published and show error

The argument syntax in your strpos() call is such that it’s testing the content for the literal string “$words” instead of the content of the $words variable. publish_post action hooks do not directly receive a post’s content as an argument. However if you use the provided arguments as detailed by the documentation, it is not … Read more