Menu Adam R Brown

WP hooks navigation: Home/browseActions indexFilters index

Source View: akismet_optimize_table

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
381                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
382
383                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
384                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
385
386                clean_comment_cache( $comment_ids );
387                do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
388           }
389
390           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
391                $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
392      }
393
394      public static function delete_old_comments_meta() {
395           global $wpdb;
396
397           $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
398
399           # enforce a minimum of 1 day
 
Line Code
411
412                foreach ( $comment_ids as $comment_id ) {
413                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
414                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
415                }
416
417                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
418           }
419
420           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
421                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
422      }
423
424      // Clear out comments meta that no longer have corresponding comments in the database
425      public static function delete_orphaned_commentmeta() {
426           global $wpdb;
427
428           $last_meta_id = 0;
429           $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true );
 
Line Code
448                }
449
450                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
451
452                // If we're getting close to max_execution_time, quit for this round.
453                if ( microtime(true) - $start_time > $max_exec_time )
454                     return;
455           }
456
457           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
458                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
459      }
460
461      // how many approved comments does this author have?
462      public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
463           global $wpdb;
464
465           if ( !empty( $user_id ) )
466                return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) );