id summary reporter owner description type status priority milestone component version severity resolution keywords cc focuses 29572 Customizer: add a framework for rendering controls from JS templates celloexpressions ocean90 "In order to facilitate future performance improvements such as lazy-loading Customizer objects and to make it easier to dynamically add controls without Ajax calls, we should introduce a framework for rendering controls from JS templates instead of PHP. We would maintain the current PHP API and continue support it fully. But we should be able to leverage the framework in all of the core controls in a back-compatible way. Essentially, `WP_Customize_Control->render_content()` would output nothing. We would add a function to `WP_Customize_Control` for defining a JS template, and this would always be output in the Customizer controls footer (if possible, even for controls that weren't added with PHP, since any available control type would be able to be added dynamically later). That part may require registering available control types (and custom controls) with the Customizer, since we would want to only output the template once, and not every available control type would have controls added to it initially. All of the arguments passed in PHP when adding the control would be sent through to JS (which might eliminate the need for manually adding things to pass `to_json()`). Finally, all added controls of types that have templates would be rendered from their template using the parameters passed when adding the control. In the future if controls are dynamically created or loaded, any controls with JS templates could have new instances created directly, or by retrieving information in the form of json from an Ajax call (rather than having to get the markup for the control UI from Ajax). This would be a significantly more efficient approach for things like menu items in the Customizer. Most important thing here: '''make this completely optional and opt-in'''. The existing PHP API for controls and Custom controls would be completely untouched; this is something that would improve things internally, and that could be leveraged in custom controls. Scope for this ticket is to create this framework and to leverage it for the main `WP_Customize_Control`. After that, we can explore implementing it in core's custom controls." enhancement closed high 4.1 Customize 3.4 normal fixed has-patch commit javascript