I’m not sure if I have done this correctly.
As I understand it:
if I have a class foo and a static method bar I can register that as the callback by passing the array array("foo","bar")
as the function name.
If I have an instance of a class in $foo and want to call the method bar I pass the array array($foo,'bar')
.
If I need to register an action inside the class itself would it work with array($this,'bar')
?
Yes, it works.
$this
Docs is referring to the concrete instance needed for the callback. That’s exactly like the$foo
example you give. It’s just that$this
is bit more special, but it represents basically the same and it works flawlessly with callbacks in PHP.Additional:
Yes you can do so, for the static function, you can write it as a string instead of the array as well:
foo::bar
, see Callbacks Docs. Might be handy.For static methods you can also do this:
when the following gives Undefined class constant ‘bar’:
example – when specifying the $control_callback for
wp_add_dashboard_widget