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
471
472                $wpdb->queries = array();
473
474                $comments = array();
475
476                foreach ( $comment_ids as $comment_id ) {
477                     $comments[ $comment_id ] = get_comment( $comment_id );
478
479                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
480                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
481                }
482
483                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
484                $format_string = implode( ', ', array_fill( 0, is_countable( $comment_ids ) ? count( $comment_ids ) : 0, '%s' ) );
485
486                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
487                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
488
489                foreach ( $comment_ids as $comment_id ) {
 
Line Code
513           // after $interval days regardless of the comment status
514           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 ) ) ) {
515                if ( empty( $comment_ids ) )
516                     return;
517
518                $wpdb->queries = array();
519
520                foreach ( $comment_ids as $comment_id ) {
521                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
522                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
523                }
524
525                do_action( 'akismet_delete_commentmeta_batch', is_countable( $comment_ids ) ? count( $comment_ids ) : 0 );
526           }
527
528           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
529                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
530      }
531
 
Line Code
542                     return;
543
544                $wpdb->queries = array();
545
546                $commentmeta_deleted = 0;
547
548                foreach ( $commentmeta_results as $commentmeta ) {
549                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
550                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
551                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
552                          $commentmeta_deleted++;
553                     }
554
555                     $last_meta_id = $commentmeta->meta_id;
556                }
557
558                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
559
560                // If we're getting close to max_execution_time, quit for this round.