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