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
389                $format_string = implode( ", ", array_fill( 0, count( $comment_ids ), '%s' ) );
390
391                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->comments} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
392                $wpdb->query( $wpdb->prepare( "DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( " . $format_string . " )", $comment_ids ) );
393
394                clean_comment_cache( $comment_ids );
395                do_action( 'akismet_delete_comment_batch', count( $comment_ids ) );
396           }
397
398           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->comments ) ) // lucky number
399                $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
400      }
401
402      public static function delete_old_comments_meta() {
403           global $wpdb;
404
405           $interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
406
407           # enforce a minimum of 1 day
 
Line Code
419
420                foreach ( $comment_ids as $comment_id ) {
421                     delete_comment_meta( $comment_id, 'akismet_as_submitted' );
422                     do_action( 'akismet_batch_delete_count', __FUNCTION__ );
423                }
424
425                do_action( 'akismet_delete_commentmeta_batch', count( $comment_ids ) );
426           }
427
428           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
429                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
430      }
431
432      // Clear out comments meta that no longer have corresponding comments in the database
433      public static function delete_orphaned_commentmeta() {
434           global $wpdb;
435
436           $last_meta_id = 0;
437           $start_time = isset( $_SERVER['REQUEST_TIME_FLOAT'] ) ? $_SERVER['REQUEST_TIME_FLOAT'] : microtime( true );
 
Line Code
456                }
457
458                do_action( 'akismet_delete_commentmeta_batch', $commentmeta_deleted );
459
460                // If we're getting close to max_execution_time, quit for this round.
461                if ( microtime(true) - $start_time > $max_exec_time )
462                     return;
463           }
464
465           if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11), $wpdb->commentmeta ) ) // lucky number
466                $wpdb->query("OPTIMIZE TABLE {$wpdb->commentmeta}");
467      }
468
469      // how many approved comments does this author have?
470      public static function get_user_comments_approved( $user_id, $comment_author_email, $comment_author, $comment_author_url ) {
471           global $wpdb;
472
473           if ( !empty( $user_id ) )
474                return (int) $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->comments} WHERE user_id = %d AND comment_approved = 1", $user_id ) );