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