[wp-hackers] Is there a reason get_header/sidebar/footer() do nothave filters?

Otto otto at ottodestruct.com
Tue Dec 10 23:13:23 UTC 2013


On Tue, Dec 10, 2013 at 5:03 PM, Josh Pollock <jpollock412 at gmail.com> wrote:

> I recently went looking for the filter to change which sidebar is outputted
> and was a little shocked to find there are no filters in get_sidebar() or
> in get_header() and get_footer(). Does anyone know if this was a conscious
> choice or not? If so, what was the reason?
>
> I'd be happy to write a patch to add some, but I'm wondering if there is
> some valid reason I'm missing for not using them?
>
> What I really want to be able to do is something like this:
>
> `
> function mobile_sidebar( $name ) {
> if ( wp_is_mobile() ) {
>      $name = mobile;
>   }
> }
> add_filter( 'the_sidebar', 'mobile_sidebar');
> `
>
> This would allow me to add different markup to the sidebar on mobile, to
> change its size, location, use a jQuery plugin to make the sidebar slide in
> and out, etc. I could also change which widget area is shown or show no
> sidebar at all.
>
>
I'm assuming you'd do this in the theme, since it doesn't make a lot of
sense in a plugin (because the plugin would not have any idea about how the
theme's header/footer/sidebar is structured).

So, instead of just calling get_sidebar, why not do this instead?

if ( wp_is_mobile() ) {
  get_sidebar('mobile');
} else {
  get_sidebar();
}

Or something like that? A filter on these doesn't really add any
functionality that isn't relatively trivial to simply do elsewhere in the
theme, and again, it doesn't make a whole lot of sense for a plugin to do
this sort of thing without intimate theme knowledge to begin with.

-Otto


More information about the wp-hackers mailing list