To prevent spammers from flooding old articles with useless comments you can set WordPress to close comments after a certain number of days:
It might be surprising for some users if the comments are closed automatically so it might be a good idea to inform them about the remaining time.
add_action( 'comment_form_top', 'topic_closes_in' );
function topic_closes_in() {
global $post;
if ($post->comment_status == 'open') {
$close_comments_days_old = get_option( 'close_comments_days_old' );
$expires = strtotime( "{$post->post_date_gmt} GMT" ) + $close_comments_days_old * DAY_IN_SECONDS;
printf( __( '(This topic will automatically close in %s. )', 'domain' ), human_time_diff( $expires ));
}
}
While the code should be almost self explanatory there is an interesting function not every WordPress developer might know: human_time_diff()
. This function is hidden in the .../wp-includes/formatting.php
file. It is originally planned to be used in themes to provide a more “human” touch to the date/time a post was written. Since the function does not care if the date is in the past or in the future we can use it for our needs.
Keep reading the article at WP Engineer. The article was originally written by Latz on 2014-06-26 05:00:27.
The article was hand-picked and curated for you by the Editorial Team of WP Archives.
This article was written by Latz and originally published on WP Engineer.