custom filter action not being called (5 posts)

  1. corischlegel
    Posted 4 years ago #

    I'm trying to write a plugin that uses a custom filter hook and I cannot seem to get it to work. It's been a while since I've written any plugin code, but as far as I can tell I'm doing all the right things, so I can't figure out what's wrong. Hopefully someone here can help me out.

    It's also quite possible that I'm doing it wrong from a PHP perspective.

    In order not to clutter the post I've posted pseudocode as a gist at https://gist.github.com/1272309 but essentially I'm calling apply_filter with a hook name and hooking into it in a static method on another class. As far as I can tell (via logging to a text file) the startup/filter hooking code is working properly, but my filter handler's not ever being called.

    Thanks in advance for any suggestions!

  2. bcwp
    Posted 4 years ago #

    Disclosure: I don't use classes in my plugins, but isn't the correct way to call add_filter with a class:

    add_filter( $tag, array( & $this, $my_method_goes_here ) );

    and you call it via apply_filters() plural and not apply_filter() singular. I believe you're using the latter.

  3. corischlegel
    Posted 4 years ago #

    Thanks bcwp; I'm trying to call the function statically, so I don't have a $this to reference.

    You're right about the apply_filters spelling, but unfortunately that was a typo in my pseudocode, not a mistake in my actual code.

  4. bcwp
    Posted 4 years ago #

    Hmmmm everything looks right to me. You've tested to ensure the that has_filter() returns true? Unfortunately I'm not sure what else could be wrong without seeing more of the code.

  5. bcwp
    Posted 4 years ago #

    According to the WordPress codex for add_filter():

    The function returns true whether the attempted function hook fails or not. There is no test that the function exists nor whether the $function_to_add is even a string. It is up to you to take care and this is done for optimization purposes, so everything is as quick as possible.

    Is it add_filter() returning true? In your pseudocode there's no check for the return value, which normally isn't necessary.

Topic Closed

This topic has been closed to new replies.

About this Topic