Advertisement
alchymyth

close comments after days

Nov 24th, 2011
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.80 KB | None | 0 0
  1. /**
  2.  * Close comments on old posts on the fly, without any extra DB queries.  Hooked to the_posts.
  3.  *
  4.  * @access private
  5.  * @since 2.7.0
  6.  *
  7.  * @param object $posts Post data object.
  8.  * @return object
  9.  */
  10. function _close_comments_for_old_posts( $posts ) {
  11.     if ( empty($posts) || !is_singular() || !get_option('close_comments_for_old_posts') )
  12.         return $posts;
  13.  
  14.     $post_types = apply_filters( 'close_comments_for_post_types', array( 'post' ) );
  15.     if ( ! in_array( $posts[0]->post_type, $post_types ) )
  16.         return $posts;
  17.  
  18.     $days_old = (int) get_option('close_comments_days_old');
  19.     if ( !$days_old )
  20.         return $posts;
  21.  
  22.     if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( $days_old * 24 * 60 * 60 ) ) {
  23.         $posts[0]->comment_status = 'closed';
  24.         $posts[0]->ping_status = 'closed';
  25.     }
  26.  
  27.     return $posts;
  28. }
  29.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement