Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: akismet_batch_delete_count

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.

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 3 times in this file.

Line Code
391
392           while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) {
393                if ( empty( $comment_ids ) )
394                     return;
395
396                $wpdb->queries = array();
397
398                foreach ( $comment_ids as $comment_id ) {
399                     do_action( 'delete_comment', $comment_id );
400                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
401                }
402
403                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
404                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
405
406                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
407                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
408
409                clean_comment_cache( $comment_ids );
 
Line Code
428           // after $interval days regardless of the comment status
429           while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) {
430                if ( empty( $comment_ids ) )
431                     return;
432
433                $wpdb->queries = array();
434
435                foreach ( $comment_ids as $comment_id ) {
436                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
437                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
438                }
439
440                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
441           }
442
443           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
444                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
445      }
446
 
Line Code
457                     return;
458
459                $wpdb->queries = array();
460
461                $commentmeta_deleted = 0;
462
463                foreach ( $commentmeta_results as $commentmeta ) {
464                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
465                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
466                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
467                          $commentmeta_deleted++;
468                     }
469
470                     $last_meta_id = $commentmeta->meta_id;
471                }
472
473                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
474
475                // If we're getting close to max_execution_time, quit for this round.