[buddypress-trac] [BuddyPress Trac] #7695: Move widget markup to theme templates
buddypress-trac
noreply at wordpress.org
Mon Feb 19 15:09:26 UTC 2018
#7695: Move widget markup to theme templates
--------------------------+-----------------------------
Reporter: boonebgorges | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Core | Version:
Severity: normal | Keywords: 2nd-opinion
--------------------------+-----------------------------
Widget markup is currently hardcoded into the widget classes. See eg
`BP_Groups_Widget::widget()`. This is bad for two broad reasons:
1. AJAX callbacks have to completely duplicate the markup. That is: on
first render, `BP_Groups_Widget::widget()` builds the markup, but when you
click one of the AJAX filters like 'Active', it's built completely
separately by `groups_ajax_widget_groups_list()`.
2. In general, there are no hooks or filters available within the
`widget()` methods to customize output. Your only choice is to fork the
widget, which because of 1, also means forking the AJAX callback.
The most natural way to solve this would be by moving the markup to
template files, which could then be overridden in the normal WP way. That
change would require a bit of thought, as we'd need to have an idiomatic
way of passing in the `$args` and `$instance` variables from the
`WP_Widget::widget()` method; while they'd be in scope inside of
`get_template_part()`, we generally use template functions rather than
directly referencing variables in templates.
There are other ways to increase customizability, but I think this is the
most WPish way. What do others think?
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/7695>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list