WP hooks navigation: Home/browse • Actions index • Filters index
To save our bandwidth, we show only a snippet of code around each occurence of the hook. View complete file in SVN (without highlighting).
The best way to understand what a hook does is to look at where it occurs in the source code.
do_action( "hook_name" )apply_filters( "hook_name", "what_to_filter" ).Remember, this hook may occur in more than one file. Moreover, the hook's context may change from version to version.
This hook occurs 3 times in this file.
| Line | Code |
|---|---|
| 391 | |
| 392 | while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL %d DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", $delete_interval, $delete_limit ) ) ) { |
| 393 | if ( empty( $comment_ids ) ) |
| 394 | return; |
| 395 | |
| 396 | $wpdb->queries = array(); |
| 397 | |
| 398 | foreach ( $comment_ids as $comment_id ) { |
| 399 | do_action( 'delete_comment', $comment_id ); |
| 400 | do_action( 'akismet_batch_delete_count', __FUNCTION__ ); |
| 401 | } |
| 402 | |
| 403 | // Prepared as strings since comment_id is an unsigned BIGINT, and using %d will constrain the value to the maximum signed BIGINT. |
| 404 | $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) ); |
| 405 | |
| 406 | $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); |
| 407 | $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) ); |
| 408 | |
| 409 | clean_comment_cache( $comment_ids ); |
| Line | Code |
| 428 | // after $interval days regardless of the comment status |
| 429 | 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 ) ) ) { |
| 430 | if ( empty( $comment_ids ) ) |
| 431 | return; |
| 432 | |
| 433 | $wpdb->queries = array(); |
| 434 | |
| 435 | foreach ( $comment_ids as $comment_id ) { |
| 436 | delete_comment_meta( $comment_id, 'akismet_as_submitted' ); |
| 437 | do_action( 'akismet_batch_delete_count', __FUNCTION__ ); |
| 438 | } |
| 439 | |
| 440 | do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) ); |
| 441 | } |
| 442 | |
| 443 | if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number |
| 444 | $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}"); |
| 445 | } |
| 446 | |
| Line | Code |
| 457 | return; |
| 458 | |
| 459 | $wpdb->queries = array(); |
| 460 | |
| 461 | $commentmeta_deleted = 0; |
| 462 | |
| 463 | foreach ( $commentmeta_results as $commentmeta ) { |
| 464 | if ( 'akismet_' == substr( $commentmeta->meta_key, 0, 8 ) ) { |
| 465 | delete_comment_meta( $commentmeta->comment_id, $commentmeta->meta_key ); |
| 466 | do_action( 'akismet_batch_delete_count', __FUNCTION__ ); |
| 467 | $commentmeta_deleted++; |
| 468 | } |
| 469 | |
| 470 | $last_meta_id = $commentmeta->meta_id; |
| 471 | } |
| 472 | |
| 473 | do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted ); |
| 474 | |
| 475 | // If we're getting close to max_execution_time, quit for this round. |