Opened 11 years ago
Closed 10 years ago
#27315 closed enhancement (fixed)
Easier adding of custom class variables when extending WP_Customize_Section
Reported by: | rhurling | Owned by: | SergeyBiryukov |
---|---|---|---|
Milestone: | 4.0 | Priority: | normal |
Severity: | normal | Version: | 3.4 |
Component: | Customize | Keywords: | has-patch commit |
Focuses: | administration | Cc: |
Description (last modified by )
WP_Customize_Section
uses $keys = array_keys( get_class_vars( __CLASS__ ) );
to set class variables, but WP_Customize_Control
uses $keys = array_keys( get_object_vars( $this ) );
to set class variables.
The difference is that if you extend WP_Customize_Control
you can add new class variables by setting them in the extended class and passing them to the args array in the constructor.
In WP_Customize_Section
one has to override the constructor to do the same.
changing
$keys = array_keys( get_class_vars( __CLASS__ ) );
to
$keys = array_keys( get_object_vars( $this ) );
in WP_Customize_Section
would solve the problem (or use the static keyword which would raise the requirements to PHP 5.3)
Attachments (1)
Change History (8)
#2
@
10 years ago
- Description modified (diff)
- Keywords good-first-bug needs-patch added
- Milestone changed from Awaiting Review to Future Release
- Version changed from 3.8.1 to 3.4
#3
@
10 years ago
Also, WP_Customize_Setting
currently uses get_class_vars( __CLASS__ )
like WP_Customize_Section
. It should be updated to use get_object_vars( $this )
as well.
Agreed.
get_class_vars( __CLASS__ )
should be replaced withget_object_vars( $this )
. This would actually bringWP_Customize_Section
in lineWP_Customize_Control
which initially did useget_class_vars()
but in [20319] was changed to useget_object_vars()
.