I’m pretty stumped on this one. I’m using add_action inside my plugin class to do certain things- add scripts & styles to the head, wp_ajax, etc. Here’s the actions, in the __construct:
function __construct(){
add_action('admin_menu', array($this, 'sph_admin_menu'));
add_action('sph_header', array($this, 'sph_callback'));
add_action('sph_header_items', array($this, 'sph_default_menu'), 1);
add_action('sph_header_items', array($this, 'sph_searchform'), 2);
add_action('sph_header_items', array($this, 'sph_social'), 3);
//Below here they don't work. I have to call these outside of the class (but I need class variables within the functions)
add_action('wp_print_styles', array(&$this, 'sph_stylesheets'));
add_action('wp_print_scripts', array(&$this, 'sph_scripts'));
add_action( 'wp_ajax_nopriv_add_to_list', array(&$this, 'le_add_to_list'));
add_action( 'wp_ajax_add_to_list', array(&$this, 'le_add_to_list'));
add_action('init', array(&$this, 'register_menu'));
}
Anybody ever come across something like this? I’d really like to know how to use said hooks from within a class- it’s so messy having actions outside the class!
Sometimes certain hooks need to be fired at certain times. Example, some hooks need to be fired upon init.
Add this to your __construct()
add_action('init', array(&$this, 'init'));
Then add this function, which will contain all hooks that need to be fired upon init.
public function init(){
add_action('hook_name', array(&$this, 'your_method_name'));
add_action('hook_name', array(&$this, 'your_method_name'));
add_action('hook_name', array(&$this, 'your_method_name'));
add_action('hook_name', array(&$this, 'your_method_name'));
}
Another Example:
add_action( 'init', function () {
add_action( 'hook_name', 'function_name', 10, 3 );
add_action( 'hook_name', __NAMESPACE__ . '\namespaced_function_name', 10 );
add_action( 'hook_name', '\specific\namespace\function_name', 5 );
}, 1 );
You will want to read about the hooks and when they are fired. So you know when and where to trigger your actions. Plugin API/Action Reference