Go to file
Weston Ruter f2f3a883d7 Customize: Improve behavior and extensibility of theme loading and searching.
* Introduce `WP_Customize_Themes_Section::$filter_type`, which has built-in functionality for `local` and `remote` filtering. When this set to `local`, all themes are assumed to be loaded from Ajax when the section is first loaded, and subsequent searching/filtering is applied to the loaded collection of themes within the section. This is how the core "Installed" section behaves - third-party sources with limited numbers of themes may consider leveraging this implementation. When this is set to `remote`, searching and filtering always triggers a new remote query via Ajax. The core "WordPress.org" section uses this approach, as it has over 5000 themes to search.
* Refactor `filterSearch()` to accept a raw term string as input. This enables a feature filter to be used on a section where `filter_type` is `local`.
* Refactor `filter()` on a theme control to check for an array of terms. Also sort the results by the number of matches. Rather than searching for an exact match, this will now search for each word in a search distinctly, allowing things like tags to rank in search results more accurately.
* Split `loadControls()` into two functions for themes section JS: `loadThemes()` to initiate and manage an Ajax request and `loadControls()` to create theme controls based on the results of the Ajax call. If third-party sections need to change the way controls are loaded, such as by using a custom control subclass of `WP_Customize_Theme_Control`, this allows them to use the core logic for managing the Ajax call and only override the actual control-creation process.
* Introduce `customize_load_themes` filter to facilitate loading themes from third-party sources (or modifying the results of the core sections).
* Bring significant improvements to the installed themes search filter.

Props celloexpressions.
Amends [41648].
See #37661.
Fixes #42049.


git-svn-id: https://develop.svn.wordpress.org/trunk@41807 602fd350-edb4-49c9-b593-d223f7449a82
2017-10-10 07:08:51 +00:00
src Customize: Improve behavior and extensibility of theme loading and searching. 2017-10-10 07:08:51 +00:00
tests File Editor: Add support for more than one sub-directory level. 2017-10-10 05:33:57 +00:00
tools/i18n DOCS: Replace HTTP links with HTTPS. 2016-06-10 04:49:09 +00:00
.editorconfig Use HTTPS URLs for codex.wordpress.org. 2015-04-12 21:28:58 +00:00
.gitignore Embeds: Add oEmbed support for someecards.com. 2017-10-02 19:09:46 +00:00
.jshintrc Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
.travis.yml Build/Test tools: Remove PHP 7.2 from the allowed failures list on Travis CI. 2017-10-04 19:53:07 +00:00
Gruntfile.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
jsdoc.conf.json Docs: Add jsdoc.conf.json JSDOC configuration file. 2017-09-11 13:13:40 +00:00
package.json Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
phpunit.xml.dist Tests: Rename ignored tests in phpunit.xml.dist. 2017-08-18 10:26:50 +00:00
webpack.config.dev.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
webpack.config.prod.js Build: Webpack instead of Browserify as JavaScript bundler. 2017-10-04 21:00:15 +00:00
wp-cli.yml Remove debug mode from WP-CLI by default, as it now outputs too much debugging information to be of use during normal development. 2015-11-28 18:36:06 +00:00
wp-config-sample.php Lightly clean up and improve inline documentation in wp-config-sample.php. 2015-05-10 00:05:30 +00:00
wp-tests-config-sample.php General: Improve terminology used when referring to installations of WordPress and its extensions. 2017-08-22 11:51:11 +00:00