A short post in the same vein as my last post, Don’t name form fields “update” or “link”.
We’ve probably all done something like this in one of our plugins:
$thing_title = apply_filters( 'the_title', $thing_title );
We want our thing’s title to get the same treatment as any other post title, so we use core’s filter. No big deal, right? Not so much.
In core, it’s actually used like this:
return apply_filters( 'the_title', $title, $id );
Importantly, it has an additional argument,
$id, passed to it. source
Like with the accidental hook duplication in my last post, this means that callbacks expecting 2 arguments will end up throwing errors when the poorly-duplicated hook only provides one. Make sure when duplicating core hooks, all the expected arguments are passed.