7

Basically, I've got a plugin that searches for certain tokens in the entire page and replaces the tokens with images. The problem is, I've got one of those tokens in the footer and, as far as I can tell, there's no filter for the footer.

So the question is, is there a way to make a custom filter? And is that the best way to go about doing this? My plugin does a preg_match in the content and, if it finds, for example "{picture here}", it replaces it. I'm not sure how to extend this functionality to the footer, though?

1 Answer 1

10

Most of the footer is straight-up PHP/HTML markup. You apply filters to dynamic content, which is why there isn't a typical footer "filter." That said, it's relatively easy to add your own filters to WordPress.

Let's say your footer.php consists of the following:

</div>    <!-- close main content div>
<div id="footer">
    <p class="copyright">Copyright 2011 By Me</p>
</div>
</body>
</html>

And lets say you want to dynamically replace the word "copyright" with the standard C image using your filter. You'd replace this with:

</div>    <!-- close main content div>
<div id="footer">
    <p class="copyright">
    <?php
    echo apply_filters( 'my_footer_filter', 'Copyright 2011 By Me' );
    ?>
    </p>
</div>
</body>
</html>

This creates a custom filter called "my_footer_filter" and applies it to the text "Copyright 2011 By Me." In your functions.php file, you can use this filter just like you would any other:

function replace_copyright( $copyright ) {
    // do something to $copyright
    return $copyright;
}
add_filter( 'my_footer_filter', 'replace_copyright' );
3
  • Thank you! That was exactly what I was looking for. Sadly, that simple answer was extremely hard to find around WP and google at large.
    – Cyprus106
    Jun 21, 2011 at 20:34
  • 1
    @EAMann Doesn't this require modifying the theme itself? What if you want this same functionality but don't have any ability to modify themes? (This is a generic plugin and needs to work with any theme)
    – niczak
    Jan 21, 2015 at 20:11
  • @NicholasKreidberg If the theme doesn't offer a filter, there's nothing you can do. So yes, the above would require editing a theme to add the filter. Actually filtering content, though, could happen in a child theme, plugin, wherever.
    – EAMann
    Jan 21, 2015 at 22:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.