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
422
423                $wpdb->queries = array();
424
425                $comments = array();
426
427                foreach ( $comment_ids as $comment_id ) {
428                     $comments[ $comment_id ] = get_comment( $comment_id );
429
430                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
431                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
432                }
433
434                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
435                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
436
437                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
438                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
439
440                foreach ( $comment_ids as $comment_id ) {
 
Line Code
464           // after $interval days regardless of the comment status
465           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 ) ) ) {
466                if ( empty( $comment_ids ) )
467                     return;
468
469                $wpdb->queries = array();
470
471                foreach ( $comment_ids as $comment_id ) {
472                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
473                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
474                }
475
476                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
477           }
478
479           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
480                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
481      }
482
 
Line Code
493                     return;
494
495                $wpdb->queries = array();
496
497                $commentmeta_deleted = 0;
498
499                foreach ( $commentmeta_results as $commentmeta ) {
500                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
501                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
502                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
503                          $commentmeta_deleted++;
504                     }
505
506                     $last_meta_id = $commentmeta->meta_id;
507                }
508
509                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
510
511                // If we're getting close to max_execution_time, quit for this round.