[wp-trac] [WordPress Trac] #35656: Deprecated old single non-WP_Widget widgets
WordPress Trac
noreply at wordpress.org
Fri Jan 29 08:52:25 UTC 2016
#35656: Deprecated old single non-WP_Widget widgets
-------------------------+-----------------
Reporter: westonruter | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: 4.5
Component: Widgets | Version: 2.8
Severity: normal | Keywords:
Focuses: |
-------------------------+-----------------
Widgets were introduced to Core in 2.2. These initial widgets only allowed
one instance of a given widget to be registered at a given time. In 2.8
the `WP_Widget` was introduced which allowed for multiple instances of a
widget type to be added, but more importantly it introduced an object-
oriented MVC-ish paradigm for representing widgets. The
`WP_Widget::update()` callback allows for a given widget instance to be
sanitized without having to actually save it to the database. This ability
is key for previewing widgets in the Customizer. In addition to the
`update` callback, the `WP_Widget` can have schema information attached
which works in conjunction with `update` to sanitize and validate a given
widget for the REST API, for automatically generating a widget form, and
automatically providing default values for a widget instance (see #35574).
All of this is not possible with the old single widgets.
I believe it is time to deprecate old single widgets so that widgets can
evolve. If support for old single widgets is removed in 4.5, then in 4.6
(or later) support can be removed which could clean up quite a bit of the
widgets codebase, including the brittle “option transactions”
functionality that was added to widgets in the Customizer.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/35656>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list