Skip to content

Instantly share code, notes, and snippets.

@hiranthi
Last active December 3, 2020 22:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save hiranthi/35b3431ca5b7dc2e6ea10c21756943e3 to your computer and use it in GitHub Desktop.
Save hiranthi/35b3431ca5b7dc2e6ea10c21756943e3 to your computer and use it in GitHub Desktop.
<?php
# Check: https://onexa.nl/wordpress/toolbar-link-redis-object-cache/
/**
* Add a link to the Admin Toolbar to easily flush the Redis cache (Redis Object Cache plugin)
*
* @author Hiranthi Herlaar, onexa.nl
* @version 2.0
*
* @var $wp_admin_bar > https://codex.wordpress.org/Class_Reference/WP_Admin_Bar
**/
if ( ! function_exists( 'redis_add_toolbar_link') )
{
function redis_add_toolbar_link( $wp_admin_bar )
{
if ( current_user_can( 'manage_options' ) && is_plugin_active( 'redis-cache/redis-cache.php' ) )
{
# Redis Object Cache < 2.x || => 2.x
$RedisObjectCache = ( class_exists( 'RedisObjectCache' ) ) ? new RedisObjectCache : redis_object_cache();
if ( $RedisObjectCache->get_redis_status() )
{
$RedisPage = is_multisite() ? 'settings.php?page=redis-cache' : 'options-general.php?page=redis-cache';
// Flush Redis Cache trough WP Rocket Admin Bar Menu
$args = array(
'id' => 'flush-redis-cache',
'title' => __( 'Flush Redis Cache' ) . '',
'parent' => false,
'href' => wp_nonce_url( network_admin_url( add_query_arg( 'action', 'flush-cache', $RedisPage ) ), 'flush-cache' )
);
$wp_admin_bar->add_node( $args );
} // end REDIS
}
} // end add_toolbar_link
}
add_action( 'admin_bar_menu', 'redis_add_toolbar_link', 999 );
@eksiscloud
Copy link

This breaks 2.x updates Redis Cache. I got a tip to add this before redis_add_toolbar_link function.

if ( ! isset( $GLOBALS[ 'redisObjectCache' ] ) ) {
$GLOBALS[ 'redisObjectCache' ] = Rhubarb\RedisCache\Plugin::instance();
}

if ( ! class_exists( 'RedisObjectCache' ) ) :

class RedisObjectCache {
public function get_redis_status() {
return Rhubarb\RedisCache\Plugin::instance()->get_redis_status();
}
}

endif;

@hiranthi
Copy link
Author

@eksiscloud thanks for letting me know the code didn't work with 2.x anymore!

I've updated the code to be compatible with 2.0.x (and it's still compatible with 1.x as well) :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment