[buddypress-trac] [BuddyPress] #4656: Theme Compat: Port over new bbPress template stack functionality
buddypress-trac
noreply at wordpress.org
Fri Nov 9 20:02:50 UTC 2012
#4656: Theme Compat: Port over new bbPress template stack functionality
------------------------------------+------------------
Reporter: r-a-y | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: 1.7
Component: Core | Version: 1.7
Severity: major | Resolution:
Keywords: has-patch dev-feedback |
------------------------------------+------------------
Description changed by r-a-y:
Old description:
> r6490 introduced a fix to override template parts in BP's custom
> directory locations.
>
> For example, I want to override `/members/single/member-header.php` and
> place it in /wp-
> content/themes/twentytwelve/'''buddypress'''/members/single/member-
> header.php
>
> Before r6490, this wasn't possible.
>
> However, JJJ noted that bbPress introduced the new method of the template
> stack in [BB4324], which is more flexible for developers and we should
> look into using that instead.
>
> ----
>
> The first patch does this verbatim and, indeed, addresses what is noted
> above.
>
> ----
>
> However, I've also attached a second patch, which includes the first
> patch plus a fix when using `bp_locate_template()` by itself.
>
> If you used `bp_locate_template()` by itself, it would not use the custom
> directory locations as set in `bp_get_template_locations()` because only
> `bp_get_template_part()` has a filter that is hooked in by
> `bp_add_template_locations()`.
>
> Second patch removes this:
>
> `add_filter( 'bp_get_template_part', 'bp_add_template_locations' );`
>
> And hooks into the later-running filter, `'bp_get_template_stack'`, to
> add the custom directory locations.
>
> This fixes problems when using such functions as
> `bp_has_custom_signup_page()` and `bp_has_custom_activation_page()`,
> which both rely on `bp_locate_template()`.
>
> If the second patch is not deemed acceptable, what we need is an approach
> that makes sure both `bp_get_template_part()` and `bp_locate_template()`
> references the same templates at all times.
>
> Feedback welcome.
New description:
r6490 introduced a fix to override template parts in BP's custom directory
locations.
For example, I want to override `/members/single/member-header.php` and
place it in /wp-
content/themes/twentytwelve/'''buddypress'''/members/single/member-
header.php
Before r6490, this wasn't possible.
However, JJJ noted that bbPress introduced the new method of the template
stack in [BB4324], which is more flexible for developers and we should
look into using that instead.
----
The first patch does this verbatim with a tiny change from bbPress that
reverts [BB4326].
----
However, I've also attached a second patch, which includes the first patch
plus a fix when using `bp_locate_template()` by itself.
If you used `bp_locate_template()` by itself, it would not use the custom
directory locations as set in `bp_get_template_locations()` because only
`bp_get_template_part()` has a filter that is hooked in by
`bp_add_template_locations()`.
Second patch removes this:
`add_filter( 'bp_get_template_part', 'bp_add_template_locations' );`
And hooks into the later-running filter, `'bp_get_template_stack'`, to add
the custom directory locations.
This fixes problems when using such functions as
`bp_has_custom_signup_page()` and `bp_has_custom_activation_page()`, which
both rely on `bp_locate_template()`.
If the second patch is not deemed acceptable, what we need is an approach
that makes sure both `bp_get_template_part()` and `bp_locate_template()`
references the same templates at all times.
Feedback welcome.
--
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/4656#comment:1>
BuddyPress <http://buddypress.org/>
BuddyPress
More information about the buddypress-trac
mailing list