Source View: akismet_spam_count_incr

To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).

Understanding Source Code

The best way to understand what a hook does is to look at where it occurs in the source code.

  • Action hooks look like this: do_action( "hook_name" )
  • Filter hooks look like this: apply_filters( "hook_name", "what_to_filter" ).

Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.

Source View

This hook occurs 2 times in this file.

Line Code
192                $response = explode( "\r\n\r\n", $response, 2 );
193           }
194           return $response;
195      }
196 }
197
198 // filter handler used to return a spam result to pre_comment_approved
199 function akismet_result_spam( $approved ) {
200      // bump the counter here instead of when the filter is added to reduce the possibility of overcounting
201      if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
202           update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
203      // this is a one-shot deal
204      remove_filter( 'pre_comment_approved', 'akismet_result_spam' );
205      return 'spam';
206 }
207
208 function akismet_result_hold( $approved ) {
209      // once only
210      remove_filter( 'pre_comment_approved', 'akismet_result_hold' );
 
Line Code
382
383           do_action( 'akismet_spam_caught' );
384
385           $last_updated = strtotime( $post->post_modified_gmt );
386           $diff = time() - $last_updated;
387           $diff = $diff / 86400;
388           
389           if ( $post->post_type == 'post' && $diff > 30 && get_option( 'akismet_discard_month' ) == 'true' && empty($comment['user_ID']) ) {
390                // akismet_result_spam() won't be called so bump the counter here
391                if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
392                     update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
393                $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : get_permalink( $post );
394                wp_safe_redirect( $redirect_to );
395                die();
396           }
397      }
398      
399      // if the response is neither true nor false, hold the comment for moderation and schedule a recheck
400      if ( 'true' != $response[1] && 'false' != $response[1] ) {