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
507
508                $wpdb->queries = array();
509
510                $comments = array();
511
512                foreach ( $comment_ids as $comment_id ) {
513                     $comments[ $comment_id ] = get_comment( $comment_id );
514
515                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
516                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
517                }
518
519                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
520                $format_string = implode( ', ', array_fill( 0, is_countable( $comment_ids ) ? count( $comment_ids ) : 0, '%s' ) );
521
522                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
523                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
524
525                foreach ( $comment_ids as $comment_id ) {
 
Line Code
549           // after $interval days regardless of the comment status
550           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 ) ) ) {
551                if ( empty( $comment_ids ) )
552                     return;
553
554                $wpdb->queries = array();
555
556                foreach ( $comment_ids as $comment_id ) {
557                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
558                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
559                }
560
561                do_action( 'akismet_delete_commentmeta_batch', is_countable( $comment_ids ) ? count( $comment_ids ) : 0 );
562           }
563
564           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
565                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
566      }
567
 
Line Code
578                     return;
579
580                $wpdb->queries = array();
581
582                $commentmeta_deleted = 0;
583
584                foreach ( $commentmeta_results as $commentmeta ) {
585                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
586                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
587                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
588                          $commentmeta_deleted++;
589                     }
590
591                     $last_meta_id = $commentmeta->meta_id;
592                }
593
594                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
595
596                // If we're getting close to max_execution_time, quit for this round.