web-dev-qa-db-ja.com

コメント管理とCDNキャッシング

私は完全にCDNによってキャッシュされているサイトで働いています。私達はコメントを発表しようとしていて、それが公開される前にすべてのコメントを調整します。誰かがコメントを投稿すると、そのコメントがモデレートになっていることを示すメッセージがページに表示されます。私がしたくないのは、CDNがこのページをモデレーションメッセージでキャッシュすることです。これを防ぐために私は何ができますか?

理想的には、どこかにフックして、CDNによってキャッシュされないクエリ文字列を含むURLを返すことができるでしょう。

1
kingkool68

理解した。 wp-comments-post.phpを見ると、comment_post_redirectという名前のフィルタがあり、これは私がコメントが承認されたかどうかをチェックし、それからURLにクエリ文字列を追加したものです。とても簡単。

//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);
1
kingkool68