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
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 );
410                do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
411           }
412
413           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
414                $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
415      }
416
417      public static function delete_old_comments_meta() {
418           global $wpdb;
419
420           $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
421
422           # enforce a minimum of 1 day
 
Line Code
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
447      // Clear out comments meta that no longer have corresponding comments in the database
448      public static function delete_orphaned_commentmeta() {
449           global $wpdb;
450
451           $last_meta_id = 0;
452           $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true );
 
Line Code
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.
476                if ( microtime(true) - $start_time > $max_exec_time )
477                     return;
478           }
479
480           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
481                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
482      }
483
484      // how many approved comments does this author have?
485      public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
486           global $wpdb;
487
488           if ( !empty( $user_id ) )
489                return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) );