'.sprintf( _n( 'Akismet has protected your site from %3$s spam comments.', 'Akismet has protected your site from %3$s spam comments.', $count ), 'http://akismet.com/?return=true', clean_url("$link?page=akismet-admin"), number_format_i18n($count) ).'
' . esc_html__('Check for Spam') . '';
! echo '';
}
add_action('manage_comments_nav', 'akismet_check_for_spam_button');
***************
*** 771,778 ****
if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) )
return;
!
! $moderation = $wpdb->get_results( "SELECT * FROM $wpdb->comments WHERE comment_approved = '0'", ARRAY_A );
foreach ( (array) $moderation as $c ) {
$c['user_ip'] = $c['comment_author_IP'];
$c['user_agent'] = $c['comment_agent'];
--- 777,788 ----
if ( ! ( isset( $_GET['recheckqueue'] ) || ( isset( $_REQUEST['action'] ) && 'akismet_recheck_queue' == $_REQUEST['action'] ) ) )
return;
!
! $paginate = '';
! if ( isset( $_POST['limit'] ) && isset( $_POST['offset'] ) ) {
! $paginate = $wpdb->prepare( " LIMIT %d OFFSET %d", array( $_POST['limit'], $_POST['offset'] ) );
! }
! $moderation = $wpdb->get_results( "SELECT * FROM {$wpdb->comments} WHERE comment_approved = '0'{$paginate}", ARRAY_A );
foreach ( (array) $moderation as $c ) {
$c['user_ip'] = $c['comment_author_IP'];
$c['user_agent'] = $c['comment_agent'];
***************
*** 780,786 ****
$c['blog'] = get_bloginfo('url');
$c['blog_lang'] = get_locale();
$c['blog_charset'] = get_option('blog_charset');
! $c['permalink'] = get_permalink($c['comment_post_ID']);
$c['user_role'] = '';
if ( isset( $c['user_ID'] ) )
--- 790,796 ----
$c['blog'] = get_bloginfo('url');
$c['blog_lang'] = get_locale();
$c['blog_charset'] = get_option('blog_charset');
! $c['permalink'] = get_permalink($c['comment_post_ID']);
$c['user_role'] = '';
if ( isset( $c['user_ID'] ) )
***************
*** 815,826 ****
delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' );
}
! $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' );
! wp_safe_redirect( $redirect_to );
! exit;
}
add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue');
// Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link
function akismet_remove_comment_author_url() {
--- 825,844 ----
delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' );
}
! if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
! wp_send_json( array(
! 'processed' => count((array) $moderation),
! ));
! }
! else {
! $redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' );
! wp_safe_redirect( $redirect_to );
! exit;
! }
}
add_action('admin_action_akismet_recheck_queue', 'akismet_recheck_queue');
+ add_action('wp_ajax_akismet_recheck_queue', 'akismet_recheck_queue');
// Adds an 'x' link next to author URLs, clicking will remove the author URL and show an undo link
function akismet_remove_comment_author_url() {
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.css 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.css 2014-03-14 02:57:39.000000000 +0300
***************
*** 1 ****
! #submitted-on{position:relative}#the-comment-list .author .akismet-user-comment-count{display:inline}#the-comment-list .author a span{text-decoration:none;color:#999}#the-comment-list .remove_url{margin-left:3px;color:#999;padding:2px 3px 2px 0}#the-comment-list .remove_url:hover{color:#A7301F;font-weight:bold;padding:2px 2px 2px 0}#dashboard_recent_comments .akismet-status{display:none}.akismet-status{float:right}.akismet-status a{color:#AAA;font-style:italic}span.comment-link a{text-decoration:underline}span.comment-link:after{content:" "attr(title) " ";color:#aaa;text-decoration:none}.mshot-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #5C5C5C;position:absolute;left:-6px;top:91px}.mshot-container{background:#5C5C5C;position:absolute;top:-94px;padding:7px;width:450px;height:338px;z-index:20000;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px}h2.ak-header{padding-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px}
\ No newline at end of file
--- 1 ----
! #submitted-on{position:relative}#the-comment-list .author .akismet-user-comment-count{display:inline}#the-comment-list .author a span{text-decoration:none;color:#999}#the-comment-list .remove_url{margin-left:3px;color:#999;padding:2px 3px 2px 0}#the-comment-list .remove_url:hover{color:#A7301F;font-weight:bold;padding:2px 2px 2px 0}#dashboard_recent_comments .akismet-status{display:none}.akismet-status{float:right}.akismet-status a{color:#AAA;font-style:italic}span.comment-link a{text-decoration:underline}span.comment-link:after{content:" "attr(title) " ";color:#aaa;text-decoration:none}.mshot-arrow{width:0;height:0;border-top:10px solid transparent;border-bottom:10px solid transparent;border-right:10px solid #5C5C5C;position:absolute;left:-6px;top:91px}.mshot-container{background:#5C5C5C;position:absolute;top:-94px;padding:7px;width:450px;height:338px;z-index:20000;-moz-border-radius:6px;border-radius:6px;-webkit-border-radius:6px}h2.ak-header{padding-left:38px;background:url('img/logo.png') no-repeat 0 9px;margin-bottom:14px;line-height:32px}.key-status{padding:0.4em 1em;color:#fff;font-weight:bold;text-align:center;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;max-width:23.3em}input#key{width:25.3em !important}input#key.valid{border-color:#4F800D}input#key.invalid,input#key.failed{border-color:#888}.key-status.under-input{margin-top:-5px;padding-bottom:0px}.key-status.invalid,.key-status.failed{background-color:#888}.key-status.valid{background-color:#4F800D}.key-status.some{background-color:#993300}.key-status.empty{display:none}table.network-status th,table.network-status td{padding:0.4em;margin:0;text-align:center}table.network-status{border-color:#dfdfdf;border-width:0 0 1px 1px;border-style:solid;border-spacing:0;width:25.6em}table.network-status th,table.network-status td{border-color:#dfdfdf;border-width:1px 1px 0 0;border-style:solid;margin:0;border-spacing:0}table.network-status td.key-status{border-radius:0px;-webkit-border-radius:0px}.checkforspam{display:inline-block !important;}.checkforspam-spinner{display:none;margin-top:10px;}
\ No newline at end of file
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.js 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.js 2014-03-14 02:57:39.000000000 +0300
***************
*** 1,114 ****
! jQuery(document).ready(function () {
! jQuery( '.switch-have-key' ).click( function() {
! var no_key = jQuery( this ).parents().find('div.no-key');
! var have_key = jQuery( this ).parents().find('div.have-key');
no_key.addClass( 'hidden' );
have_key.removeClass( 'hidden' );
return false;
});
! jQuery( 'p.need-key a' ).click( function(){
document.akismet_activate.submit();
});
! jQuery('.akismet-status').each(function () {
! var thisId = jQuery(this).attr('commentid');
! jQuery(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child');
! });
! jQuery('.akismet-user-comment-count').each(function () {
! var thisId = jQuery(this).attr('commentid');
! jQuery(this).insertAfter('#comment-' + thisId + ' .author strong:first').show();
! });
! jQuery('#the-comment-list tr.comment .column-author a[title ^= "http://"]').each(function () {
! var thisTitle = jQuery(this).attr('title');
! thisCommentId = jQuery(this).parents('tr:first').attr('id').split("-");
! jQuery(this).attr("id", "author_comment_url_"+ thisCommentId[1]);
if (thisTitle) {
! jQuery(this).after(' x');
}
});
! jQuery('.remove_url').live('click', function () {
! var thisId = jQuery(this).attr('commentid');
var data = {
action: 'comment_author_deurl',
_wpnonce: WPAkismet.comment_author_url_nonce,
id: thisId
};
! jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: data,
beforeSend: function () {
// Removes "x" link
! jQuery("a[commentid='"+ thisId +"']").hide();
// Show temp status
! jQuery("#author_comment_url_"+ thisId).html('Removing...');
},
success: function (response) {
if (response) {
// Show status/undo link
! jQuery("#author_comment_url_"+ thisId).attr('cid', thisId).addClass('akismet_undo_link_removal').html('URL removed (undo)');
! }
}
});
return false;
});
! jQuery('.akismet_undo_link_removal').live('click', function () {
! var thisId = jQuery(this).attr('cid');
! var thisUrl = jQuery(this).attr('href').replace("http://www.", "").replace("http://", "");
var data = {
action: 'comment_author_reurl',
_wpnonce: WPAkismet.comment_author_url_nonce,
id: thisId,
url: thisUrl
};
! jQuery.ajax({
url: ajaxurl,
type: 'POST',
data: data,
beforeSend: function () {
// Show temp status
! jQuery("#author_comment_url_"+ thisId).html('Re-adding…');
},
success: function (response) {
if (response) {
// Add "x" link
! jQuery("a[commentid='"+ thisId +"']").show();
// Show link
! jQuery("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl);
}
}
});
return false;
});
! jQuery('a[id^="author_comment_url"]').mouseover(function () {
var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
// Need to determine size of author column
! var thisParentWidth = jQuery(this).parent().width();
// It changes based on if there is a gravatar present
! thisParentWidth = (jQuery(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px';
! if (jQuery(this).find('.mShot').length == 0 && !jQuery(this).hasClass('akismet_undo_link_removal')) {
! var thisId = jQuery(this).attr('id').replace('author_comment_url_', '');
! jQuery('.widefat td').css('overflow', 'visible');
! jQuery(this).css('position', 'relative');
! var thisHref = jQuery.URLEncode(jQuery(this).attr('href'));
! jQuery(this).append('
');
setTimeout(function () {
! jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
}, 6000);
setTimeout(function () {
! jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
}, 12000);
} else {
! jQuery(this).find('.mShot').css('left', thisParentWidth).show();
}
}).mouseout(function () {
! jQuery(this).find('.mShot').hide();
});
});
// URL encode plugin
jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
--- 1,154 ----
! jQuery( function ( $ ) {
! $( '.switch-have-key' ).click( function() {
! var no_key = $( this ).parents().find('div.no-key');
! var have_key = $( this ).parents().find('div.have-key');
no_key.addClass( 'hidden' );
have_key.removeClass( 'hidden' );
return false;
});
! $( 'p.need-key a' ).click( function(){
document.akismet_activate.submit();
});
! $('.akismet-status').each(function () {
! var thisId = $(this).attr('commentid');
! $(this).prependTo('#comment-' + thisId + ' .column-comment div:first-child');
! });
! $('.akismet-user-comment-count').each(function () {
! var thisId = $(this).attr('commentid');
! $(this).insertAfter('#comment-' + thisId + ' .author strong:first').show();
! });
! $('#the-comment-list').find('tr.comment, tr[id ^= "comment-"]').find('.column-author a[title ^= "http://"]').each(function () {
! var thisTitle = $(this).attr('title');
! thisCommentId = $(this).parents('tr:first').attr('id').split("-");
! $(this).attr("id", "author_comment_url_"+ thisCommentId[1]);
if (thisTitle) {
! $(this).after(
! $( 'x' )
! .attr( 'commentid', thisCommentId[1] )
! .attr( 'title', WPAkismet.strings['Remove this URL'] )
! );
}
});
! $('.remove_url').live('click', function () {
! var thisId = $(this).attr('commentid');
var data = {
action: 'comment_author_deurl',
_wpnonce: WPAkismet.comment_author_url_nonce,
id: thisId
};
! $.ajax({
url: ajaxurl,
type: 'POST',
data: data,
beforeSend: function () {
// Removes "x" link
! $("a[commentid='"+ thisId +"']").hide();
// Show temp status
! $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Removing...'] ) );
},
success: function (response) {
if (response) {
// Show status/undo link
! $("#author_comment_url_"+ thisId)
! .attr('cid', thisId)
! .addClass('akismet_undo_link_removal')
! .html(
! $( '' ).text( WPAkismet.strings['URL removed'] )
! )
! .append( ' ' )
! .append(
! $( '' )
! .text( WPAkismet.strings['(undo)'] )
! .addClass( 'akismet-span-link' )
! );
! }
}
});
return false;
});
! $('.akismet_undo_link_removal').live('click', function () {
! var thisId = $(this).attr('cid');
! var thisUrl = $(this).attr('href').replace("http://www.", "").replace("http://", "");
var data = {
action: 'comment_author_reurl',
_wpnonce: WPAkismet.comment_author_url_nonce,
id: thisId,
url: thisUrl
};
! $.ajax({
url: ajaxurl,
type: 'POST',
data: data,
beforeSend: function () {
// Show temp status
! $("#author_comment_url_"+ thisId).html( $( '' ).text( WPAkismet.strings['Re-adding...'] ) );
},
success: function (response) {
if (response) {
// Add "x" link
! $("a[commentid='"+ thisId +"']").show();
// Show link
! $("#author_comment_url_"+ thisId).removeClass('akismet_undo_link_removal').html(thisUrl);
}
}
});
return false;
});
! $('a[id^="author_comment_url"], tr.pingback td.column-author a:first-of-type').mouseover(function () {
var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
// Need to determine size of author column
! var thisParentWidth = $(this).parent().width();
// It changes based on if there is a gravatar present
! thisParentWidth = ($(this).parent().find('.grav-hijack').length) ? thisParentWidth - 42 + 'px' : thisParentWidth + 'px';
! if ($(this).find('.mShot').length == 0 && !$(this).hasClass('akismet_undo_link_removal')) {
! var self = $( this );
! $('.widefat td').css('overflow', 'visible');
! $(this).css('position', 'relative');
! var thisHref = $.URLEncode( $(this).attr('href') );
! $(this).append('
');
setTimeout(function () {
! self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
}, 6000);
setTimeout(function () {
! self.find( '.mshot-image' ).attr('src', '//s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
}, 12000);
} else {
! $(this).find('.mShot').css('left', thisParentWidth).show();
}
}).mouseout(function () {
! $(this).find('.mShot').hide();
});
+ $('.checkforspam:not(.button-disabled)').click( function(e) {
+ $('.checkforspam:not(.button-disabled)').addClass('button-disabled');
+ $('.checkforspam-spinner').show();
+ akismet_check_for_spam(0, 100);
+ e.preventDefault();
+ });
+
+ function akismet_check_for_spam(offset, limit) {
+ $.post(
+ ajaxurl,
+ {
+ 'action': 'akismet_recheck_queue',
+ 'offset': offset,
+ 'limit': limit
+ },
+ function(result) {
+ if (result.processed < limit) {
+ window.location.reload();
+ }
+ else {
+ akismet_check_for_spam(offset + limit, limit);
+ }
+ }
+ );
+ }
});
// URL encode plugin
jQuery.extend({URLEncode:function(c){var o='';var x=0;c=c.toString();var r=/(^[a-zA-Z0-9_.]*)/;
***************
*** 117,126 ****
}else{if(c[x]==' ')o+='+';else{var d=c.charCodeAt(x);var h=d.toString(16);
o+='%'+(h.length<2?'0':'')+h.toUpperCase();}x++;}}return o;}
});
- // Preload mshot images after everything else has loaded
- jQuery(window).load(function() {
- var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
- jQuery('a[id^="author_comment_url"]').each(function () {
- jQuery.get(wpcomProtocol+'s0.wordpress.com/mshots/v1/'+jQuery.URLEncode(jQuery(this).attr('href'))+'?w=450');
- });
- });
--- 157,159 ----
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/akismet.php 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/akismet.php 2014-03-18 04:18:23.000000000 +0300
***************
*** 6,12 ****
Plugin Name: Akismet
Plugin URI: http://akismet.com/?return=true
Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from comment and trackback spam. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet API key, and 3) Go to your Akismet configuration page, and save your API key.
! Version: 2.5.9
Author: Automattic
Author URI: http://automattic.com/wordpress-plugins/
License: GPLv2 or later
--- 6,12 ----
Plugin Name: Akismet
Plugin URI: http://akismet.com/?return=true
Description: Used by millions, Akismet is quite possibly the best way in the world to protect your blog from comment and trackback spam. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) Sign up for an Akismet API key, and 3) Go to your Akismet configuration page, and save your API key.
! Version: 2.6.0
Author: Automattic
Author URI: http://automattic.com/wordpress-plugins/
License: GPLv2 or later
***************
*** 34,41 ****
exit;
}
! define('AKISMET_VERSION', '2.5.9');
define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ ));
/** If you hardcode a WP.com API key here, all key config screens will be hidden */
if ( defined('WPCOM_API_KEY') )
--- 34,42 ----
exit;
}
! define('AKISMET_VERSION', '2.6.0');
define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ ));
+ define('AKISMET_DELETE_LIMIT', 10000);
/** If you hardcode a WP.com API key here, all key config screens will be hidden */
if ( defined('WPCOM_API_KEY') )
***************
*** 197,213 ****
// filter handler used to return a spam result to pre_comment_approved
function akismet_result_spam( $approved ) {
// bump the counter here instead of when the filter is added to reduce the possibility of overcounting
if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
// this is a one-shot deal
! remove_filter( 'pre_comment_approved', 'akismet_result_spam' );
return 'spam';
}
function akismet_result_hold( $approved ) {
// once only
! remove_filter( 'pre_comment_approved', 'akismet_result_hold' );
return '0';
}
--- 198,223 ----
// filter handler used to return a spam result to pre_comment_approved
function akismet_result_spam( $approved ) {
+ static $just_once = false;
+ if ( $just_once )
+ return $approved;
+
// bump the counter here instead of when the filter is added to reduce the possibility of overcounting
if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
+
// this is a one-shot deal
! $just_once = true;
return 'spam';
}
function akismet_result_hold( $approved ) {
+ static $just_once = false;
+ if ( $just_once )
+ return $approved;
+
// once only
! $just_once = true;
return '0';
}
***************
*** 321,327 ****
global $akismet_api_host, $akismet_api_port, $akismet_last_comment;
$comment = $commentdata;
! $comment['user_ip'] = $_SERVER['REMOTE_ADDR'];
$comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null;
$comment['referrer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
$comment['blog'] = get_option('home');
--- 331,337 ----
global $akismet_api_host, $akismet_api_port, $akismet_last_comment;
$comment = $commentdata;
! $comment['user_ip'] = akismet_get_ip_address();
$comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null;
$comment['referrer'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
$comment['blog'] = get_option('home');
***************
*** 422,479 ****
add_action('preprocess_comment', 'akismet_auto_check_comment', 1);
function akismet_delete_old() {
global $wpdb;
! $now_gmt = current_time('mysql', 1);
! $comment_ids = $wpdb->get_col("SELECT comment_id FROM $wpdb->comments WHERE DATE_SUB('$now_gmt', INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam'");
! if ( empty( $comment_ids ) )
! return;
! $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) );
! do_action( 'delete_comment', $comment_ids );
! $wpdb->query("DELETE FROM $wpdb->comments WHERE comment_id IN ( $comma_comment_ids )");
! $wpdb->query("DELETE FROM $wpdb->commentmeta WHERE comment_id IN ( $comma_comment_ids )");
! clean_comment_cache( $comment_ids );
! $n = mt_rand(1, 5000);
! if ( apply_filters('akismet_optimize_table', ($n == 11)) ) // lucky number
! $wpdb->query("OPTIMIZE TABLE $wpdb->comments");
}
function akismet_delete_old_metadata() {
global $wpdb;
- $now_gmt = current_time( 'mysql', 1 );
$interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
# enfore a minimum of 1 day
$interval = absint( $interval );
! if ( $interval < 1 ) {
! return;
! }
// akismet_as_submitted meta values are large, so expire them
// after $interval days regardless of the comment status
! while ( TRUE ) {
! $comment_ids = $wpdb->get_col( "SELECT $wpdb->comments.comment_id FROM $wpdb->commentmeta INNER JOIN $wpdb->comments USING(comment_id) WHERE meta_key = 'akismet_as_submitted' AND DATE_SUB('$now_gmt', INTERVAL {$interval} DAY) > comment_date_gmt LIMIT 10000" );
!
! if ( empty( $comment_ids ) ) {
! return;
! }
!
foreach ( $comment_ids as $comment_id ) {
delete_comment_meta( $comment_id, 'akismet_as_submitted' );
}
}
!
! /*
! $n = mt_rand( 1, 5000 );
! if ( apply_filters( 'akismet_optimize_table', ( $n == 11 ), 'commentmeta' ) ) { // lucky number
! $wpdb->query( "OPTIMIZE TABLE $wpdb->commentmeta" );
! }
! */
! }
add_action('akismet_scheduled_delete', 'akismet_delete_old');
add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata');
--- 432,501 ----
add_action('preprocess_comment', 'akismet_auto_check_comment', 1);
+ function akismet_get_ip_address() {
+ foreach( array( 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ) as $key ) {
+ if ( array_key_exists( $key, $_SERVER ) === true ) {
+ foreach ( explode( ',', $_SERVER[$key] ) as $ip ) {
+ $ip = trim($ip);
+
+ if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false ) {
+ return $ip;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
function akismet_delete_old() {
global $wpdb;
!
! while( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT comment_id FROM {$wpdb->comments} WHERE DATE_SUB(NOW(), INTERVAL 15 DAY) > comment_date_gmt AND comment_approved = 'spam' LIMIT %d", defined( 'AKISMET_DELETE_LIMIT' ) ? AKISMET_DELETE_LIMIT : 10000 ) ) ) {
! if ( empty( $comment_ids ) )
! return;
! $wpdb->queries = array();
! do_action( 'delete_comment', $comment_ids );
!
! $comma_comment_ids = implode( ', ', array_map('intval', $comment_ids) );
!
! $wpdb->query("DELETE FROM {$wpdb->comments} WHERE comment_id IN ( $comma_comment_ids )");
! $wpdb->query("DELETE FROM {$wpdb->commentmeta} WHERE comment_id IN ( $comma_comment_ids )");
!
! clean_comment_cache( $comment_ids );
! }
+ if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11) ) ) // lucky number
+ $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
}
function akismet_delete_old_metadata() {
global $wpdb;
$interval = apply_filters( 'akismet_delete_commentmeta_interval', 15 );
# enfore a minimum of 1 day
$interval = absint( $interval );
! if ( $interval < 1 )
! $interval = 1;
// akismet_as_submitted meta values are large, so expire them
// after $interval days regardless of the comment status
! while ( $comment_ids = $wpdb->get_col( $wpdb->prepare( "SELECT m.comment_id FROM {$wpdb->commentmeta} as m INNER JOIN {$wpdb->comments} as c USING(comment_id) WHERE m.meta_key = 'akismet_as_submitted' AND DATE_SUB(NOW(), INTERVAL %d DAY) > c.comment_date_gmt LIMIT 10000", $interval ) ) ) {
! if ( empty( $comment_ids ) )
! return;
!
! $wpdb->queries = array();
!
foreach ( $comment_ids as $comment_id ) {
delete_comment_meta( $comment_id, 'akismet_as_submitted' );
}
}
!
! if ( apply_filters( 'akismet_optimize_table', ( mt_rand(1, 5000) == 11) ) ) // lucky number
! $wpdb->query("OPTIMIZE TABLE {$wpdb->comments}");
! }
add_action('akismet_scheduled_delete', 'akismet_delete_old');
add_action('akismet_scheduled_delete', 'akismet_delete_old_metadata');
***************
*** 588,593 ****
--- 610,680 ----
if ( $akismet_comment_nonce_option == 'true' || $akismet_comment_nonce_option == '' )
add_action( 'comment_form', 'akismet_add_comment_nonce' );
+ function akismet_pingback_forwarded_for( $r, $url ) {
+ static $urls = array();
+
+ // Call this with $r == null to prime the callback to add headers on a specific URL
+ if ( is_null( $r ) && !in_array( $url, $urls ) ) {
+ $urls[] = $url;
+ }
+
+ // Add X-Pingback-Forwarded-For header, but only for requests to a specific URL (the apparent pingback source)
+ if ( is_array( $r ) && is_array( $r['headers'] ) && !isset( $r['headers']['X-Pingback-Forwarded-For'] ) && in_array( $url, $urls ) ) {
+ $remote_ip = preg_replace( '/[^a-fx0-9:.,]/i', '', $_SERVER['REMOTE_ADDR'] );
+
+ // Note: this assumes REMOTE_ADDR is correct, and it may not be if a reverse proxy or CDN is in use
+ $r['headers']['X-Pingback-Forwarded-For'] = $remote_ip;
+
+ // Also identify the request as a pingback verification in the UA string so it appears in logs
+ $r['user-agent'] .= '; verifying pingback from ' . $remote_ip;
+ }
+
+ return $r;
+ }
+
+ function akismet_pre_check_pingback( $method ) {
+
+ if ( $method !== 'pingback.ping' )
+ return;
+
+ global $wp_xmlrpc_server;
+
+ if ( !is_object( $wp_xmlrpc_server ) )
+ return false;
+
+ // Lame: tightly coupled with the IXR class.
+ $args = $wp_xmlrpc_server->message->params;
+
+ if ( !empty( $args[1] ) ) {
+ $post_id = url_to_postid( $args[1] );
+
+ // If this gets through the pre-check, make sure we properly identify the outbound request as a pingback verification
+ akismet_pingback_forwarded_for( null, $args[0] );
+ add_filter( 'http_request_args', 'akismet_pingback_forwarded_for', 10, 2 );
+
+ $comment = array(
+ 'comment_author_url' => $args[0],
+ 'comment_post_ID' => $post_id,
+ 'comment_author' => '',
+ 'comment_author_email' => '',
+ 'comment_content' => '',
+ 'comment_type' => 'pingback',
+ 'akismet_pre_check' => '1',
+ 'comment_pingback_target' => $args[1],
+ );
+
+ $comment = akismet_auto_check_comment( $comment );
+
+ if ( isset( $comment['akismet_result'] ) && 'true' == $comment['akismet_result'] ) {
+ // Lame: tightly coupled with the IXR classes. Unfortunately the action provides no context and no way to return anything.
+ $wp_xmlrpc_server->error( new IXR_Error( 0, 'Invalid discovery target' ) );
+ }
+ }
+ }
+
+ // Run this early in the pingback call, before doing a remote fetch of the source uri
+ add_action( 'xmlrpc_call', 'akismet_pre_check_pingback' );
+
global $wp_version;
if ( '3.0.5' == $wp_version ) {
remove_filter( 'comment_text', 'wp_kses_data' );
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/akismet/readme.txt 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/akismet/readme.txt 2014-03-18 01:15:43.000000000 +0300
***************
*** 2,9 ****
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic
Tags: akismet, comments, spam
Requires at least: 3.0
! Tested up to: 3.6
! Stable tag: 2.5.9
License: GPLv2 or later
Akismet checks your comments against the Akismet web service to see if they look like spam or not.
--- 2,9 ----
Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, eoigal, automattic
Tags: akismet, comments, spam
Requires at least: 3.0
! Tested up to: 3.8.1
! Stable tag: 2.6.0
License: GPLv2 or later
Akismet checks your comments against the Akismet web service to see if they look like spam or not.
***************
*** 31,36 ****
--- 31,44 ----
== Changelog ==
+ = 2.6.0 =
+ * Add ajax paging to the check for spam button to handle large volumes of comments
+ * Optimize javascript and add localization support
+ * Fix bug in link to spam comments from right now dashboard widget
+ * Fix bug with deleting old comments to avoid timeouts dealing with large volumes of comments
+ * Include X-Pingback-Forwarded-For header in outbound WordPress pingback verifications
+ * Add pre-check for pingbacks, to stop spam before an outbound verification request is made
+
= 2.5.9 =
* Update 'Already have a key' link to redirect page rather than depend on javascript
* Fix some non-translatable strings to be translatable
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/advanced-cache.php 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/advanced-cache.php 2014-08-08 20:30:29.000000000 +0400
***************
*** 1,6 ****
--- 1,10 ----
";
}
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/Changelog.txt 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/Changelog.txt 2014-08-08 20:30:29.000000000 +0400
***************
*** 1,3 ****
--- 1,106 ----
+ 2014-08-08 13:07 donncha
+
+ * wp-cache-phase1.php: Just in case the local modified time of a
+ file is 0, disable the "last modified time" check.
+
+ 2014-08-08 11:32 donncha
+
+ * plugins/domain-mapping.php: Check if HTTPS exists before checking
+ it's value to avoid warnings
+
+ 2014-08-08 11:24 donncha
+
+ * wp-cache.php: Replace wpdb->escape with esc_sql() as it's
+ deprecated.
+
+ 2014-08-08 11:21 donncha
+
+ * wp-cache-phase2.php: Make sure $wp_cache_no_cache_for_get,
+ $wp_cache_object_cache, $wp_cache_request_uri are visible to the
+ OB callback to avoid warnings and fix functionality
+
+ 2014-08-07 14:00 donncha
+
+ * Changelog.txt, readme.txt, wp-cache.php: Updated changelog,
+ documentation, bumped version number to 1.4.1 and tested version.
+
+ 2014-08-07 12:45 donncha
+
+ * wp-cache.php: Removed author information
+
+ 2014-08-06 12:41 kraftbj
+
+ * plugins/awaitingmoderation.php, plugins/badbehaviour.php,
+ plugins/domain-mapping.php, plugins/jetpack.php,
+ plugins/searchengine.php, plugins/wptouch.php, wp-cache.php: PR
+ #13: Added .button-primary and .button-secondary classes to and
+ removed »'s from buttons throughout the admin for
+ consistency. Ref:
+ https://github.com/Automattic/wp-super-cache/pull/13 Props:
+ rcowles
+
+ 2014-08-05 20:00 kraftbj
+
+ * ossdl-cdn.php, readme.txt, wp-cache.php: Fix bad merge.
+
+ 2014-08-05 19:56 kraftbj
+
+ * readme.txt: Add Jetpack to mobile FAQ.
+
+ 2014-08-05 19:56 kraftbj
+
+ * wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo
+
+ 2014-08-05 19:55 kraftbj
+
+ * ossdl-cdn.php, readme.txt, wp-cache.php: Update
+ wordpress.org/extend URLs
+
+ 2014-08-05 12:42 donncha
+
+ * wp-cache.php: Fix to avoid an XSS in the settings page. Props
+ Simon Waters, Surevine Limited.
+
+ 2014-08-04 22:04 kraftbj
+
+ * ossdl-cdn.php: Remove reference to CDN Sync. Plugin no longer in
+ repo.
+
+ 2014-07-31 21:09 kraftbj
+
+ * readme.txt: Add Jetpack to mobile FAQ.
+
+ 2014-07-31 21:09 kraftbj
+
+ * wp-cache.php: Remove CDN Sync Tools. No longer in WP.org repo
+
+ 2014-07-31 21:08 kraftbj
+
+ * ossdl-cdn.php, readme.txt, wp-cache-phase1.php, wp-cache.php:
+ Update wordpress.org/extend URLs
+
+ 2014-07-31 21:08 kraftbj
+
+ * plugins/awaitingmoderation.php, plugins/badbehaviour.php,
+ plugins/domain-mapping.php, plugins/dynamic-cache-test.php,
+ plugins/jetpack.php, plugins/searchengine.php,
+ plugins/wptouch.php: Trim whitespace
+
+ 2014-07-31 21:07 kraftbj
+
+ * wp-cache-config-sample.php, wp-cache-phase1.php, wp-cache.php:
+ Trim whitespace
+
+ 2014-07-31 21:06 kraftbj
+
+ * wp-cache.php: Admin: Add clear to h3 to pretify Recommended Links
+ title
+
+ 2014-07-31 20:51 donncha
+
+ * wp-cache-phase2.php: Make sure these are global so the function
+ knows about them. Props JoHenton and richardmtl
+ http://wordpress.org/support/topic/notices-appearing-above-site-pages-how-do-i-get-rid-of-them?replies=2
2013-10-23 10:49 donncha
* wp-super-cache.pot: Updated translation file
diff -crBPN --exclude=.htaccess-dist --exclude=wp-config.php --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=.htaccess-dist --exclude=wordpress.sql --exclude=wp-cache-config.php --exclude=editor_plugin.js --exclude=jetpack --exclude=.files.list --exclude=wordpress-3.7.4.pl /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php
*** /home/packages/qi/SOURCES/wordpress-3.7.1/wp-content/plugins/wp-super-cache/ossdl-cdn.php 2013-10-30 20:29:20.000000000 +0300
--- /home/packages/qi/SOURCES/wordpress-3.7.4/wp-content/plugins/wp-super-cache/ossdl-cdn.php 2014-08-08 20:30:29.000000000 +0400
***************
*** 149,155 ****
$example_cdn_uri .= '/wp-includes/js/prototype.js';
?>
wp-content and wp-includes directories (except for PHP files) on your site with the URL you provide below. That way you can either copy all the static content to a dedicated host or mirror the files to a CDN by origin pull.', 'wp-super-cache' ); ?>
-
CDN Sync Tool plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the plugin support forum if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?>
WARNING: Test some static urls e.g., %s to ensure your CDN service is fully working before saving changes.', 'wp-super-cache' ), '' . $example_cdn_uri . '' ); ?>
!
OSSDL CDN Off Linker by Mark Kubacki', 'wp-super-cache' ); ?>
--- 195,201 ----
!
OSSDL CDN Off Linker by Mark Kubacki', 'wp-super-cache' ); ?>
" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "
" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "
" . __( 'For best performance you should enable "Mobile device support" or delete the mobile rewrite rules in your .htaccess. Look for the 2 lines with the text "2.0\ MMP|240x320" and delete those.', 'wp-super-cache' ) . "
" . __( 'This will have no affect on ordinary users but mobile users will see uncached pages.', 'wp-super-cache' ) . "
# BEGIN WPSuperCache and # END WPSuperCache and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?>
# BEGIN WPSuperCache and # END WPSuperCache. There are two sections that look very similar. Just below the line %%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$ add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?>
!
# BEGIN WPSuperCache and # END WPSuperCache and let the plugin regenerate them by reloading this page.', 'wp-super-cache' ), $home_path ); ?>
# BEGIN WPSuperCache and # END WPSuperCache. There are two sections that look very similar. Just below the line %%{HTTP:Cookie} !^.*(comment_author_|%s|wp-postpass_).*$ add these lines: (do it twice, once for each section)', 'wp-super-cache' ), $home_path, wpsc_get_logged_in_cookie() ); ?>
!
' . __( "Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '
' . __( "Warning! You attempted to enable compression but zlib.output_compression is enabled. See #21 in the Troubleshooting section of the readme file.", 'wp-super-cache' ) . '
';
} else {
if ( $new_cache_compression != $cache_compression ) {
***************
*** 650,656 ****
$wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list
if ( function_exists( 'do_cacheaction' ) ) {
$wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers );
! $wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes );
}
$mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default
// mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) );
--- 652,658 ----
$wp_cache_mobile_prefixes = apply_filters( 'cached_mobile_prefixes', $wp_cache_mobile_prefixes ); // Allow mobile plugins access to modify the mobile UA prefix list
if ( function_exists( 'do_cacheaction' ) ) {
$wp_cache_mobile_browsers = do_cacheaction( 'wp_super_cache_mobile_browsers', $wp_cache_mobile_browsers );
! $wp_cache_mobile_prefixes = do_cacheaction( 'wp_super_cache_mobile_prefixes', $wp_cache_mobile_prefixes );
}
$mobile_groups = apply_filters( 'cached_mobile_groups', array() ); // Group mobile user agents by capabilities. Lump them all together by default
// mobile_groups = array( 'apple' => array( 'ipod', 'iphone' ), 'nokia' => array( 'nokia5800', 'symbianos' ) );
***************
*** 738,747 ****
$home_path = parse_url( site_url() );
$home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' );
if (! isset( $wp_cache_home_path ) )
! $wp_cache_home_path = '/';
if ( "$home_path" != "$wp_cache_home_path" )
wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file);
!
if( $wp_cache_mobile_enabled == 1 ) {
update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups );
--- 740,749 ----
$home_path = parse_url( site_url() );
$home_path = trailingslashit( array_key_exists( 'path', $home_path ) ? $home_path[ 'path' ] : '' );
if (! isset( $wp_cache_home_path ) )
! $wp_cache_home_path = '/';
if ( "$home_path" != "$wp_cache_home_path" )
wp_cache_replace_line('^ *\$wp_cache_home_path', "\$wp_cache_home_path = '$home_path';", $wp_cache_config_file);
!
if( $wp_cache_mobile_enabled == 1 ) {
update_cached_mobile_ua_list( $wp_cache_mobile_browsers, $wp_cache_mobile_prefixes, $mobile_groups );
***************
*** 797,803 ****
wp_unschedule_event( $next_preload, 'wp_cache_full_preload_hook' );
if ( $wp_cache_preload_interval == 0 ) {
echo "
%s is writeable by the webserver so the files advanced-cache.php and cache-config.php can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?>
readme.txt for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?>
" . sprintf( __( 'Need help? Check the Super Cache readme file. It includes installation documentation, a FAQ and Troubleshooting tips. The support forum is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . "";
echo "";
!
! echo "";
wp_nonce_field('wp-cache');
?>
%s is writeable by the webserver so the files advanced-cache.php and cache-config.php can be deleted automatically. (Making sure those files are writeable too is probably a good idea!)', 'wp-super-cache' ), WP_CONTENT_DIR ); ?>
readme.txt for instructions on uninstalling this script. Look for the heading, "How to uninstall WP Super Cache".', 'wp-super-cache' ), WP_PLUGIN_URL ); ?>
" . sprintf( __( 'Need help? Check the Super Cache readme file. It includes installation documentation, a FAQ and Troubleshooting tips. The support forum is also available. Your question may already have been answered.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/', 'http://wordpress.org/tags/wp-super-cache?forum_id=10' ) . "";
echo "";
!
! echo "";
wp_nonce_field('wp-cache');
?> " . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '';
}
}
! echo "";
if ( $cache_enabled ) {
echo "
" . __( 'Cache Tester', 'wp-super-cache' ) . "
";
echo '
' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '
';
--- 1072,1078 ----
echo "
" . __( 'Notice: PHP caching enabled but Supercache mod_rewrite rules detected. Cached files will be served using those rules. If your site is working ok please ignore this message or you can edit the .htaccess file in the root of your install and remove the SuperCache rules.', 'wp-super-cache' ) . '
';
}
}
! echo "";
if ( $cache_enabled ) {
echo "
" . __( 'Cache Tester', 'wp-super-cache' ) . "
";
echo '
' . __( 'Test your cached website by clicking the test button below.', 'wp-super-cache' ) . '
WPSCMin, a Supercache plugin that minifies cached pages by removing whitespaces and extra characters ', 'wp-super-cache' ), 'http://lyncd.com/wpscmin/' ); ?>
Yahoo! Yslow is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at GTMetrix.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?>
!
Use Google Libraries allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/use-google-libraries/' ); ?>
!
CDN Sync Tool plugin will help upload files to Amazon S3/Cloudfront if you would rather not depend on origin pull. See the plugin support forum if you have any queries about this plugin.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cdn-sync-tool/', 'http://wordpress.org/tags/cdn-sync-tool?forum_id=10' ); ?>
Advanced users only: Speed up your site with Caching and cache-control explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?>
!
Advanced users only: Install an object cache. Choose from Memcached, XCache, eAcccelerator and others.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?>
!
Cron View is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/cron-view/' ); ?>
!
" . __( "Cached pages are stored on your server as html and PHP files. If you need to delete them use the button below.", 'wp-super-cache' ) . "";
echo '
Yahoo! Yslow is an extension for the Firefox add-on Firebug. It analyzes web pages and suggests ways to improve their performance based on a set of rules for high performance web pages. Also try the performance tools online at GTMetrix.', 'wp-super-cache' ), 'http://developer.yahoo.com/yslow/', 'http://gtmetrix.com/' ); ?>
!
Use Google Libraries allows you to load some commonly used Javascript libraries from Google webservers. Ironically it may reduce your Yslow score.', 'wp-super-cache' ), 'http://wordpress.org/plugins/use-google-libraries/' ); ?>
Advanced users only: Speed up your site with Caching and cache-control explains how to make your site more cacheable with .htaccess rules.', 'wp-super-cache' ), 'http://www.askapache.com/htaccess/speed-up-your-site-with-caching-and-cache-control.html' ); ?>
!
Advanced users only: Install an object cache. Choose from Memcached, XCache, eAcccelerator and others.', 'wp-super-cache' ), 'http://wordpress.org/plugins/memcached/', 'http://neosmart.net/dl.php?id=12', 'http://neosmart.net/dl.php?id=13' ); ?>
!
Cron View is a useful plugin to use when trying to debug garbage collection and preload problems.', 'wp-super-cache' ), 'http://wordpress.org/plugins/cron-view/' ); ?>
Support Forum', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?>
Development Version', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?>
!
rate this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/extend/plugins/wp-super-cache/' ); ?>
Support Forum', 'wp-super-cache' ), 'http://wordpress.org/tags/wp-super-cache' ); ?>
Development Version', 'wp-super-cache' ), 'http://ocaoimh.ie/y/2o' ); ?>
!
rate this plugin and tell me if it works for you or not. It really helps development.', 'wp-super-cache' ), 'http://wordpress.org/plugins/wp-super-cache/' ); ?>
" . __( 'Checking for and deleting expired files is expensive, but it’s expensive leaving them there too. On a very busy site you should set the expiry time to 600 seconds. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "
";
echo "
" . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "
" . __( 'Checking for and deleting expired files is expensive, but it’s expensive leaving them there too. On a very busy site you should set the expiry time to 600 seconds. Experiment with different values and visit this page to see how many expired files remain at different times during the day. If you are using legacy caching aim to have less than 500 cached files if possible. You can have many times more cached files when using mod_rewrite or PHP caching.', 'wp-super-cache' ) . "
";
echo "
" . __( 'Set the expiry time to 0 seconds to disable garbage collection.', 'wp-super-cache' ) . "
If you continue to see this warning message please see point 5 of the Troubleshooting Guide. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "
If you continue to see this warning message please see point 5 of the Troubleshooting Guide. The WP_CACHE line must be moved up.', 'wp-super-cache' ) . "