Skip to content
Snippets Groups Projects
Commit 054c48f6 authored by Hendrik Klemp's avatar Hendrik Klemp
Browse files

Add Clear cache Button to Options Page

parent 0bc66a24
No related branches found
No related tags found
No related merge requests found
<?php <?php
add_action('transition_post_status', 'refresh_wp_redis_cache',10,3); add_action('transition_post_status', 'refresh_wp_redis_cache',10,3);
add_action('wp_ajax_clear_wp_redis_cache', 'clear_wp_redis_cache');
add_action( 'admin_footer', 'clear_wp_redis_cache_javascript' );
//clears the cache after you update a post //clears the cache after you update a post
function refresh_wp_redis_cache( $new, $old, $post ) function refresh_wp_redis_cache( $new, $old, $post )
{ {
...@@ -23,3 +24,50 @@ $redis_key = md5($frontPage); ...@@ -23,3 +24,50 @@ $redis_key = md5($frontPage);
$redis->del($redis_key); $redis->del($redis_key);
} }
} }
// clears the whole cache
function clear_wp_redis_cache()
{
include_once("predis5.2.php"); //we need this to use Redis inside of PHP
$args = array( 'post_type' => 'any', 'posts_per_page' => -1);
$wp_query = new WP_Query( $args); // to get all Posts
$redis = new Predis_Client();
// Loop all posts and clear the cache
$i = 0;
while ( $wp_query->have_posts() ) : $wp_query->the_post();
$permalink = get_permalink();
$redis_key = md5($permalink);
if (($redis->exists($redis_key)) == true ) {
$redis->del($redis_key);
$i++;
}
endwhile;
echo $i++." of " . $wp_query -> found_posts . " posts was cleared in cache";
die();
}
function clear_wp_redis_cache_javascript() {
?>
<script type="text/javascript" >
jQuery(document).ready(function($) {
jQuery('#WPRedisClearCache').click(function(){
var data = {
action: 'clear_wp_redis_cache',
};
// since 2.8 ajaxurl is always defined in the admin header and points to admin-ajax.php
$.post(ajaxurl, data, function(response) {
alert(response);
});
});
});
</script>
<?php
}
?>
...@@ -143,7 +143,7 @@ function edit_redis_options() { ...@@ -143,7 +143,7 @@ function edit_redis_options() {
<input type="checkbox" name="wp-redis-cache-unlimited" size="45" value="true" <?php checked('true', get_option('wp-redis-cache-unlimited')); ?>/></p> <input type="checkbox" name="wp-redis-cache-unlimited" size="45" value="true" <?php checked('true', get_option('wp-redis-cache-unlimited')); ?>/></p>
<p><input type="submit" name="Submit" value="Update Options" /></p> <p><input type="submit" name="Submit" value="Update Options" /></p>
<p><input type="button" id="WPRedisClearCache" name="WPRedisClearCache" value="Clear Cache"></p>
<input type="hidden" name="action" value="update" /> <input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="wp-redis-cache-seconds,wp-redis-cache-unlimited" /> <input type="hidden" name="page_options" value="wp-redis-cache-seconds,wp-redis-cache-unlimited" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment