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
569
570                $wpdb->queries = array();
571
572                $comments = array();
573
574                foreach ( $comment_ids as $comment_id ) {
575                     $comments[ $comment_id ] = get_comment( $comment_id );
576
577                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
578                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
579                }
580
581                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
582                $format_string = implode( ', ', array_fill( 0, is_countable( $comment_ids ) ? count( $comment_ids ) : 0, '%s' ) );
583
584                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . ' )', $comment_ids ) );
585                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . ' )', $comment_ids ) );
586
587                foreach ( $comment_ids as $comment_id ) {
 
Line Code
614           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 ) ) ) {
615                if ( empty( $comment_ids ) ) {
616                     return;
617                }
618
619                $wpdb->queries = array();
620
621                foreach ( $comment_ids as $comment_id ) {
622                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
623                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
624                }
625
626                do_action( 'akismet_delete_commentmeta_batch', is_countable( $comment_ids ) ? count( $comment_ids ) : 0 );
627           }
628
629           if ( apply_filters( 'akismet_optimize_table', ( mt_rand( 1, 5000 ) == 11 ), $wpdb->commentmeta ) ) { // lucky number
630                $wpdb->query( "OPTIMIZE TABLE {$wpdb->commentmeta}" );
631           }
632      }
 
Line Code
645                }
646
647                $wpdb->queries = array();
648
649                $commentmeta_deleted = 0;
650
651                foreach ( $commentmeta_results as $commentmeta ) {
652                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
653                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
654                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
655                          ++$commentmeta_deleted;
656                     }
657
658                     $last_meta_id = $commentmeta->meta_id;
659                }
660
661                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
662
663                // If we're getting close to max_execution_time, quit for this round.