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