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
403                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
404
405                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
406                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
407
408                clean_comment_cache( $comment_ids );
409                do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
410           }
411
412           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
413                $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
414      }
415
416      public static function delete_old_comments_meta() {
417           global $wpdb;
418
419           $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
420
421           # enforce a minimum of 1 day
 
Line Code
433
434                foreach ( $comment_ids as $comment_id ) {
435                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
436                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
437                }
438
439                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
440           }
441
442           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
443                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
444      }
445
446      // Clear out comments meta that no longer have corresponding comments in the database
447      public static function delete_orphaned_commentmeta() {
448           global $wpdb;
449
450           $last_meta_id = 0;
451           $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true );
 
Line Code
470                }
471
472                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
473
474                // If we're getting close to max_execution_time, quit for this round.
475                if ( microtime(true) - $start_time > $max_exec_time )
476                     return;
477           }
478
479           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
480                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
481      }
482
483      // how many approved comments does this author have?
484      public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
485           global $wpdb;
486
487           if ( !empty( $user_id ) )
488                return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) );