Comment Moderation and CDN Caching

I work on a site that is entirely cached by a CDN. We are about to roll out comments and will be moderating every comment before it goes live. When someone posts a comment and the page is rendered with a message indicating their comment is being held in moderation. What I don’t want is for the CDN to cache this page with the moderation message. What can I do to prevent this?

Ideally I would be able to hook in somewhere and return the URL with a query string in it which aren’t cached by our CDN.

Related posts

1 comment

  1. Figured it out. Looking at wp-comments-post.php there is a filter called comment_post_redirect which I used to check if the comment was approved and then added a query string to the URL. So easy.

    //A query string needs to be added when redirecting back to the post after a comment is posted and not approved. This ensures the page with the "Your comment is awaiting moderation." message won't be cached by the CDN and seen by the rest of the world.  
    function add_query_string_to_comment_redirect($location, $comment) {
        if( !$comment->comment_approved ) {
            $location = add_query_arg( array( 'moderated' => '' ), $location);
        }
        return $location;
    }
    add_filter('comment_post_redirect', 'add_query_string_to_comment_redirect', 10, 2);
    

Comments are closed.