minit
minit copied to clipboard
Add "Purge Minit Cache" button to the admin bar
Hi @kasparsd,
Why not add a Purge Button in the admin bar ??
add_action('admin_bar_menu', function(){
global $wp_admin_bar;
$wp_admin_bar->add_node(array(
'id' => 'minit_purge_button',
'title' => __('Purge Minit', 'minit'),
'parent' => false,
'href' => add_query_arg(array(
'purge_minit' => true,
'_wpnonce' => wp_create_nonce('purge_minit')
), admin_url()),
'group' => false,
'meta' => array()
));
}, 999);
@sidati That is an excellent idea. Thank you posting the code sample.
@kasparsd Glad you like it,
By the way, if you have minutes, take a look to my pull request concerning the @import
css functions
https://github.com/sidati/minit/commit/3f0f618746f3a172b53582f24405977e8517a229
I like this! I dont think we should register it with an anonymous function though. It makes it hard to remove it for those who does not want it.
@kasparsd @ahansson89 why not adding some settings array with a filter like in JS plugins, so devs can enable or disable any core feature; something like :
$settings = apply_filters('minit_settings', array(
'admin_bar_button' => true,
'move_css_import_to_top' => true,
'comments_in_combined_file' => true,
'minify_css' => false
'exlude_externals' => false
));
I like this idea a lot!
That said, I think stuff like this could go in a different plugin like this: https://github.com/markoheijnen/Minit-Pro
<?php
/*
Plugin Name: Fluch cache button
Version: 0.1.0
Description: Add an admin bar button to flush the object cache.
Author: Viktor Szépe
Plugin URI: https://github.com/szepeviktor/wordpress-plugin-construction
GitHub Plugin URI: https://github.com/szepeviktor/wordpress-plugin-construction
*/
if ( function_exists( 'wp_cache_flush' ) ) {
add_action( 'admin_bar_menu', 'o1_flush_cache_button', 100 );
}
function o1_flush_cache_button( $wp_admin_bar ) {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
if ( 'flush' === $_GET['flush-cache-button']
&& wp_verify_nonce( $_GET['_wpnonce'], 'flush-cache-button' )
) {
wp_cache_flush();
add_action( 'admin_notices', function () {
echo '<div class="notice notice-success is-dismissible"><p>Object Cache flushed.</p></div>';
} );
}
$dashboard_url = admin_url( add_query_arg( 'flush-cache-button', 'flush', 'index.php' ) );
$args = array(
'id' => 'flush_cache_button',
'title' => 'Flush Object Cache',
'href' => wp_nonce_url( $dashboard_url, 'flush-cache-button' ),
'meta' => array( 'class' => 'flush-cache-button' )
);
$wp_admin_bar->add_node( $args );
}
https://github.com/szepeviktor/wordpress-plugin-construction/blob/master/mu-cache-flush-button/flush-cache-button.php
You only need to chage wp_cache_flush();
and rephrase messages.