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
368
369           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 ) ) ) {
370                if ( empty( $comment_ids ) )
371                     return;
372
373                $wpdb->queries = array();
374
375                foreach ( $comment_ids as $comment_id ) {
376                     do_action( 'delete_comment', $comment_id );
377                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
378                }
379
380                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
381                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
382
383                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
384                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
385
386                clean_comment_cache( $comment_ids );
 
Line Code
405           // after $interval days regardless of the comment status
406           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 ) ) ) {
407                if ( empty( $comment_ids ) )
408                     return;
409
410                $wpdb->queries = array();
411
412                foreach ( $comment_ids as $comment_id ) {
413                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
414                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
415                }
416
417                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
418           }
419
420           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
421                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
422      }
423
 
Line Code
434                     return;
435
436                $wpdb->queries = array();
437
438                $commentmeta_deleted = 0;
439
440                foreach ( $commentmeta_results as $commentmeta ) {
441                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
442                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
443                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
444                          $commentmeta_deleted++;
445                     }
446
447                     $last_meta_id = $commentmeta->meta_id;
448                }
449
450                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
451
452                // If we're getting close to max_execution_time, quit for this round.