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
414
415                $wpdb->queries = array();
416
417                $comments = array();
418
419                foreach ( $comment_ids as $comment_id ) {
420                     $comments[ $comment_id ] = get_comment( $comment_id );
421
422                     do_action( 'delete_comment', $comment_id, $comments[ $comment_id ] );
423                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
424                }
425
426                // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT.
427                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
428
429                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
430                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
431
432                foreach ( $comment_ids as $comment_id ) {
 
Line Code
456           // after $interval days regardless of the comment status
457           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 ) ) ) {
458                if ( empty( $comment_ids ) )
459                     return;
460
461                $wpdb->queries = array();
462
463                foreach ( $comment_ids as $comment_id ) {
464                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
465                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
466                }
467
468                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
469           }
470
471           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
472                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
473      }
474
 
Line Code
485                     return;
486
487                $wpdb->queries = array();
488
489                $commentmeta_deleted = 0;
490
491                foreach ( $commentmeta_results as $commentmeta ) {
492                     if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) {
493                          delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key );
494                          do_action( 'akismet_batch_delete_count', __FUNCTION__ );
495                          $commentmeta_deleted++;
496                     }
497
498                     $last_meta_id = $commentmeta->meta_id;
499                }
500
501                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
502
503                // If we're getting close to max_execution_time, quit for this round.