From what I understand from your question, your best course of action is to assign the node to a WordPress callback function using built-in AJAX. If you don’t know what I’m talking about, you should familiarize yourself with using AJAX in WordPress in the Codex. However, here is a basic overview of steps:
-
Add a function in a JS file that is attaches a click handler to the admin node element (should be #wp-admin-bar-node-name, check dev tools). Code not tested but for sample purposes.
jQuery(document).ready(function($){ $('#wp-admin-bar-node-name').on('click', 'a', function(e){ var data = { 'action': 'enqueue_my_style', }; $.post(ajax_url, data, function(response) { console.log('Got this from the server: ' + response); }); e.preventDefault(); }); });
-
Create a PHP function (in functions.php, your plugin file or wherever you choose to keep and organize PHP functions) with a callback function (again, not tested)
add_action('wp_ajax_enqueue_my_style', 'enqueue_my_style_callback'); function enqueue_my_style_callback() { wp_enqueue_style('my_style'); //Assumes you have already registered the style wp_die(); }
This should get you pointed in the right direction. If you’re looking to dequeue on another node, just write another similar set of functions or write a more complex PHP callback and pass data from the click to the function using the data
object. There are a lot of resources on how to use AJAX in WordPress on the web and this example isnt’s altogether that complicated.