Commit Graph

290 Commits

Author SHA1 Message Date
Dominik Schilling
7cce73a634 General: Introduce a wp_list_sort() helper function, v2.
In addition to `wp_list_filter()` for filtering a list of objects, and `wp_list_pluck()` for plucking a certain field out of each object in a list, this new function can be used for sorting a list of objects by specific fields. These functions are now all contained within the new `WP_List_Util()` class and `wp_list_sort()` is used in various parts of core for sorting lists.

This was previously committed in [38859] but got reverted in [38862] and [38863]. To fix the previous issues, `wp_list_sort()` supports now an additional argument to preserve array keys via `uasort()`.

Props flixos90, DrewAPicture, jorbin.
Fixes #37128.
Built from https://develop.svn.wordpress.org/trunk@38928


git-svn-id: http://core.svn.wordpress.org/trunk@38871 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-25 21:26:32 +00:00
Dominik Schilling
6c8508023f Revert [38859] due to an incomplete implementation.
See https://core.trac.wordpress.org/ticket/37128#comment:27.
See #37128.
Built from https://develop.svn.wordpress.org/trunk@38863


git-svn-id: http://core.svn.wordpress.org/trunk@38806 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-21 17:01:32 +00:00
Pascal Birchler
f54558e75b General: Introduce a wp_list_sort() helper function.
In addition to `wp_list_filter()` for filtering a list of objects, and `wp_list_pluck()` for plucking a certain field out of each object in a list, this new function can be used for sorting a list of objects by specific fields. These functions are now all contained within the new `WP_List_Util()` class and `wp_list_sort()` is used in various parts of core for sorting lists.

Props flixos90, DrewAPicture, jorbin.
Fixes #37128.
Built from https://develop.svn.wordpress.org/trunk@38859


git-svn-id: http://core.svn.wordpress.org/trunk@38802 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-21 11:12:51 +00:00
Sergey Biryukov
ec5782bed5 Docs: Fix typo in in_category() description.
Props Kenshino, mbootsman.
Fixes #38363.
Built from https://develop.svn.wordpress.org/trunk@38828


git-svn-id: http://core.svn.wordpress.org/trunk@38771 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-19 13:46:44 +00:00
Andrea Fercia
7be7d396f1 Editor: Add a role button to the Tags meta box tag cloud links.
For better accessibility, the tag cloud links in the Tags meta box should be
reported to assistive technologies as buttons. They don't navigate to a new
resource, instead they perform an action.

Fixes #38318.

Built from https://develop.svn.wordpress.org/trunk@38800


git-svn-id: http://core.svn.wordpress.org/trunk@38743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-16 20:09:28 +00:00
Dion Hulse
f40c2a62a6 Taxonomy: Avoid a fatal error in the_tags() in the event that get_the_term_list() returns a WP_Error.
Props michalzuber.
See #37291.

Built from https://develop.svn.wordpress.org/trunk@38777


git-svn-id: http://core.svn.wordpress.org/trunk@38720 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-10-11 03:27:31 +00:00
Drew Jaynes
22adda2aa0 Hooks: Standardize naming of dynamic hooks to use interpolation vs concatenation.
Benefits gained in discoverability and self-documentation throughout core trump the negligible performance hit in using interpolation in hook names.

Props ramiy.
See #37748.

Built from https://develop.svn.wordpress.org/trunk@38307


git-svn-id: http://core.svn.wordpress.org/trunk@38248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-08-22 18:25:31 +00:00
Drew Jaynes
6cc13f0c54 Docs: Fix formatting, tense, verb conjugation, and other syntax for wp-includes/* elements introduced or changed in 4.6.
Part 1/2.

See #37318.

Built from https://develop.svn.wordpress.org/trunk@38121


git-svn-id: http://core.svn.wordpress.org/trunk@38062 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-20 16:57:32 +00:00
Sergey Biryukov
139387b7e5 Docs: Use 3-digit, x.x.x-style semantic versioning for _doing_it_wrong(), _deprecated_function(), _deprecated_argument(), and _deprecated_file() throughout core.
Props metodiew.
Fixes #36495.
Built from https://develop.svn.wordpress.org/trunk@37985


git-svn-id: http://core.svn.wordpress.org/trunk@37926 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-07-06 12:40:29 +00:00
Drew Jaynes
5e5f5dd4e9 Docs: Improve return descriptions for get_the_category() and get_the_term() to specifically notate that an array of WP_Term objects is returned on success.
See #32246. 

Built from https://develop.svn.wordpress.org/trunk@37615


git-svn-id: http://core.svn.wordpress.org/trunk@37583 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-06-01 22:46:28 +00:00
Drew Jaynes
3beb18d4f4 Docs: Improve documentation for wp_generate_tag_cloud() default arguments by formatting them into in a hash-notation.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@37587


git-svn-id: http://core.svn.wordpress.org/trunk@37555 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-27 18:00:28 +00:00
Boone Gorges
253686fae6 Store only term IDs in object term relationships caches.
Previously, objects containing all data about a term were stored in each
object's term cache. Besides being wasteful, this approach caused invalidation
issues, as when a modified term count required a flush for all objects
belonging to the term.

Backward compatibility is maintained for plugins that continue to put object
data directly into the `{$taxonomy}_relationships` cache bucket.

Fixes #36814.
Built from https://develop.svn.wordpress.org/trunk@37573


git-svn-id: http://core.svn.wordpress.org/trunk@37541 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-26 04:50:27 +00:00
Drew Jaynes
b9ed1cb665 Docs: Reorder argument descriptions in the DocBlock for wp_list_categories() to match the default arguments list and improve reading at a glance.
Props birgire for the initial patch.
Fixes #36693.

Built from https://develop.svn.wordpress.org/trunk@37571


git-svn-id: http://core.svn.wordpress.org/trunk@37539 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-25 19:40:27 +00:00
Drew Jaynes
6c34bf08a1 Docs: Add missing documentation for the style argument in the DocBlock for wp_list_categories().
Props birgire for the initial patch.
See #36693.

Built from https://develop.svn.wordpress.org/trunk@37569


git-svn-id: http://core.svn.wordpress.org/trunk@37537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-25 19:35:37 +00:00
Drew Jaynes
da78aeffe9 Docs: Apply inline @see tags to hooks referenced in DocBlocks in a variety of wp-includes/* files.
Applying these specially-crafted `@see` tags allows the Code Reference parser to recognize and link these elements as actions and filters.

See #36921.

Built from https://develop.svn.wordpress.org/trunk@37542


git-svn-id: http://core.svn.wordpress.org/trunk@37510 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-23 18:59:27 +00:00
Drew Jaynes
c8c44a3111 Docs: Standardize filter docs in wp-includes/category-template.php to use third-person singular verbs per the inline documentation standards for PHP.
See #36913.

Built from https://develop.svn.wordpress.org/trunk@37496


git-svn-id: http://core.svn.wordpress.org/trunk@37464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 18:25:52 +00:00
Drew Jaynes
f52a8cb1fa Docs: Remove/replace invalid inline @link tags in DocBlocks in wp-includes/*.
Fixes #36910.

Built from https://develop.svn.wordpress.org/trunk@37487


git-svn-id: http://core.svn.wordpress.org/trunk@37455 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 17:39:28 +00:00
Drew Jaynes
549e33a599 Docs: Remove several invalid inline @link tags from the DocBlock for wp_list_categories().
See #36910.

Built from https://develop.svn.wordpress.org/trunk@37486


git-svn-id: http://core.svn.wordpress.org/trunk@37454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-22 17:24:28 +00:00
Boone Gorges
03fa635ba7 Introduce required argument for wp_dropdown_categories().
This allows the HTML5 `required` attribute to be added to the `select` element.

Props wzislam, pcarvalho.
Fixes #31909.
Built from https://develop.svn.wordpress.org/trunk@37465


git-svn-id: http://core.svn.wordpress.org/trunk@37433 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-19 02:39:27 +00:00
Boone Gorges
805a1ebadb Beautify, simplify, lovelify, alignify the default argument array in wp_dropdown_categories().
See #31909.
Built from https://develop.svn.wordpress.org/trunk@37463


git-svn-id: http://core.svn.wordpress.org/trunk@37431 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-05-19 02:17:27 +00:00
John Blackbourn
e56457f7fe Taxonomy: Correct the accetped types for the taxonomy element in the arguments passed to wp_dropdown_categories().
Props grapplerulrich
Fixes #35446

Built from https://develop.svn.wordpress.org/trunk@36289


git-svn-id: http://core.svn.wordpress.org/trunk@36256 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-01-13 20:16:29 +00:00
Pascal Birchler
25ca04b95f Docs: Improve readability of the default arguments of wp_list_categories().
Adds missing documentation for the `separator` argument introduced in [35140].

Props birgire for initial patch.
Fixes #34751.
Built from https://develop.svn.wordpress.org/trunk@36135


git-svn-id: http://core.svn.wordpress.org/trunk@36101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-31 11:30:27 +00:00
Drew Jaynes
05e0d7c3c3 Docs: Add missing parameter and return descriptions to the DocBlocks for _wp_object_name_sort_cb() and _wp_object_count_sort_cb(), both uasort() callbacks.
See #32246.

Built from https://develop.svn.wordpress.org/trunk@36013


git-svn-id: http://core.svn.wordpress.org/trunk@35978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-18 23:38:26 +00:00
Boone Gorges
b2f4f73633 Ensure that wp_list_categories() supports comma-separated lists for 'exclude' and 'exclude_tree'.
[34696] introduced a regression whereby comma-separated values for 'exclude'
and 'exclude_tree' would be handled improperly when merging the two parameters,
resulting in category IDs being incorrectly dropped from the combined array.

Props gblsm, hnle.
Fixes #35156.
Built from https://develop.svn.wordpress.org/trunk@36005


git-svn-id: http://core.svn.wordpress.org/trunk@35970 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-18 18:12:25 +00:00
Boone Gorges
20651de171 Introduce 'tag-link-position-x' class to tag cloud links.
The new class describes the cardinal position of a link in the cloud, allowing
more fine-grained CSS and JS targeting.

Props Mte90, chmac.
Fixes #5172.
Built from https://develop.svn.wordpress.org/trunk@35984


git-svn-id: http://core.svn.wordpress.org/trunk@35949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-17 16:27:28 +00:00
Boone Gorges
812060f940 Improve handling for WP_Error objects in get_the_terms().
`wp_get_object_terms()` can return a `WP_Error` object. As such, the
`get_the_terms()` cache wrapper should handle them properly. To wit:

* Don't try to map an error object to `get_term()`. Introduced in [35032].
* Don't cache an error object as taxonomy relationships. Introduced in at least [16487], maybe earlier.

Props stephenharris.
Fixes #34723.
Built from https://develop.svn.wordpress.org/trunk@35850


git-svn-id: http://core.svn.wordpress.org/trunk@35814 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-10 03:35:27 +00:00
Sergey Biryukov
b8e250927f In wp_list_categories(), rewrite a long condition for clarity.
See #34363.
Built from https://develop.svn.wordpress.org/trunk@35293


git-svn-id: http://core.svn.wordpress.org/trunk@35259 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-20 16:13:26 +00:00
Boone Gorges
b285b3002a Correct inline comment in wp_list_categories().
The fallback link for the 'All' option is 'page_for_posts', not
'page_on_front'. Introduced in [32292].

Props sudar, SergeyBiryukov.
Fixes #34363.
Built from https://develop.svn.wordpress.org/trunk@35291


git-svn-id: http://core.svn.wordpress.org/trunk@35257 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-20 12:55:27 +00:00
Drew Jaynes
2e11f8cc16 Taxonomy: Improve deprecated argument strings for the 'link' type in get_categories() and wp_dropdown_categories().
Props swissspidy, gagan0123.
Fixes #34318.

Built from https://develop.svn.wordpress.org/trunk@35264


git-svn-id: http://core.svn.wordpress.org/trunk@35230 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-18 15:35:24 +00:00
Scott Taylor
296671abcc Taxonomy: in wp_list_categories(), add an arg: separator, to allow the overriding of <br/>.
Props wojtek.szkutnik.
Fixes #9025.

Built from https://develop.svn.wordpress.org/trunk@35140


git-svn-id: http://core.svn.wordpress.org/trunk@35105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-13 17:02:25 +00:00
Boone Gorges
499d1b74ba Don't cache WP_Term objects in wp_get_object_cache().
The data stored in the cache should be raw database query results, not
`WP_Term` objects (which may be modified by plugins, and may contain additional
properties that shouldn't be cached).

If term relationships caches were handled in `wp_get_object_terms()` - where
a database query takes place - it would be straightforward to cache raw data.
See #34239. Since, in fact, `get_the_terms()` caches the value it gets from
`wp_get_object_terms()`, we need a technique that allows us to get raw data
from a `WP_Term` object. Mirroring `WP_User`, we introduce a `data` property
on term objects, which `get_the_terms()` uses to fetch cacheable term info.

Fixes #34262.
Built from https://develop.svn.wordpress.org/trunk@35032


git-svn-id: http://core.svn.wordpress.org/trunk@34997 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-10-12 15:13:48 +00:00
Boone Gorges
5b32e27a00 Fix 'exclude_tree' in wp_list_categories().
The 'exclude_tree' parameter must be compatible with 'hierarchical';
previously, 'hierarchical' canceled it out. This changeset also makes it so
that 'exclude_tree' is compatible with 'exclude'. When both are passed, and
'hierarchical' is true, the descendant trees of terms in both parameters will
be excluded from matched terms.

Props tott, webord, MikeHansenMe.
Fixes #12981.
Built from https://develop.svn.wordpress.org/trunk@34696


git-svn-id: http://core.svn.wordpress.org/trunk@34660 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-29 19:12:27 +00:00
Boone Gorges
c243d7070e Introduce 'the_category_list' filter.
Used to filter categories as structured data, before building markup in
`get_the_category_list()`.

We use this filter in addition to upstream filters (such as
'get_the_categories'`) because those upstream filters are used in numerous
contexts, while `'the_category_list'` is always used for generating markup
for display.

Props KevinB, ericlewis, SergeyBiryukov, DrewAPicture.
Fixes #9227.
Built from https://develop.svn.wordpress.org/trunk@34625


git-svn-id: http://core.svn.wordpress.org/trunk@34589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-27 02:22:24 +00:00
Boone Gorges
1ae565455b Pass the post ID to the get_the_categories filter.
Props SergeyBiryukov.
See #9227.
Built from https://develop.svn.wordpress.org/trunk@34624


git-svn-id: http://core.svn.wordpress.org/trunk@34588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-27 02:17:25 +00:00
Drew Jaynes
6e350ff16e Docs: Clarify the file header summary and version for wp-includes/category-template.php.
See #33413. See #33701.

Built from https://develop.svn.wordpress.org/trunk@34420


git-svn-id: http://core.svn.wordpress.org/trunk@34384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-22 14:23:24 +00:00
Scott Taylor
172e37b007 Move Walker_Category and Walker_CategoryDropdown into their own files via svn cp. Remove them from category-template.php. Load them in category.php. svn cp category.php over to category-functions.php, which also loads now in category.php.
See #33413.

Built from https://develop.svn.wordpress.org/trunk@34110


git-svn-id: http://core.svn.wordpress.org/trunk@34078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-14 03:10:24 +00:00
Boone Gorges
7f5a8e6680 In wp_list_categories(), 'current_category' should accept an array of values.
This allows the 'current-cat' or 'current-cat-parent' classes to be applied
to more than one item in the list.

Props vilkatis.
Fixes #33565.
Built from https://develop.svn.wordpress.org/trunk@33804


git-svn-id: http://core.svn.wordpress.org/trunk@33772 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-29 19:46:23 +00:00
Boone Gorges
8670349f70 Rename param added to wp_list_categories() in [33764] to 'hide_title_if_empty'.
Props vilkatis, DrewAPicture.
Fixes #33565.
Built from https://develop.svn.wordpress.org/trunk@33767


git-svn-id: http://core.svn.wordpress.org/trunk@33735 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-27 02:09:21 +00:00
Boone Gorges
0db421e69b After [33764], fix docblock formatting for wp_list_categories().
See #33460.
Built from https://develop.svn.wordpress.org/trunk@33765


git-svn-id: http://core.svn.wordpress.org/trunk@33733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-26 19:43:24 +00:00
Boone Gorges
ccb9c641f4 Introduce hide_title_if_no_cats parameter to wp_list_categories().
When generating a `<ul>` using `wp_list_categories()`, a title `<li>` element
is put at the top of the term list. Current behavior is that this title `<li>`
appears even when no terms are found. The new `hide_title_if_no_cats` param
allows developers to specify that the title should be hidden when the term list
is empty.

Props vilkatis.
Fixes #33460.
Built from https://develop.svn.wordpress.org/trunk@33764


git-svn-id: http://core.svn.wordpress.org/trunk@33732 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-26 19:42:21 +00:00
Boone Gorges
d031a79a3e Use proper array documentation formatting for wp_list_categories().
This changeset also corrects a few parameter descriptions, and adds a few that
were previously missing.

Fixes #33556.
Built from https://develop.svn.wordpress.org/trunk@33763


git-svn-id: http://core.svn.wordpress.org/trunk@33731 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-26 15:30:21 +00:00
Boone Gorges
8b15f8be3d In Walker_CategoryDropdown::start_el(), cast values to strings before deciding whether to append 'selected' attribute.
As of [32484], `wp_dropdown_categories()` uses the `$value_field` value to
decide whether a given `<option>` should be 'selected'. However, `$value_field`
can refer to a value that is a string, such as a category's slug. This causes
problems when doing a loose comparison (`==`) with the value of the `'selected'`
parameter, which defaults to `0`, because when doing a loose comparison
between an integer and a string, PHP will cast the string to an integer. This
creates false matches, resulting in `<option>` elements getting a 'selected'
attribute incorrectly.

We address the issue by casting the comparison values to strings, and then
using the strict comparison operator `===`.

Fixes #33452 for trunk.
Built from https://develop.svn.wordpress.org/trunk@33681


git-svn-id: http://core.svn.wordpress.org/trunk@33648 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-21 01:11:26 +00:00
Drew Jaynes
0729c70e03 Update the description for get_the_category() with helpful information for the proper function to use for custom taxonomies.
Also adds a missing return description.

See #32246.

Built from https://develop.svn.wordpress.org/trunk@33318


git-svn-id: http://core.svn.wordpress.org/trunk@33290 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-17 22:58:25 +00:00
Boone Gorges
a3d9af584c Introduce 'wp_generate_tag_cloud_data' filter.
This filter allows developers to modify the data that is used to create tag
clouds, without having to manipulate the tag cloud markup directly.

As part of the refactor, this changeset also adds a few unit tests for the way
`wp_generate_tag_cloud()` generates the 'title' attribute, as well as
improvements to output escaping.

Props flixos90, ysalame.
Fixes #24656.
Built from https://develop.svn.wordpress.org/trunk@32996


git-svn-id: http://core.svn.wordpress.org/trunk@32967 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-29 14:16:26 +00:00
Scott Taylor
bd8fafea54 Use void instead of null where appropriate when pipe-delimiting @return types. If a @return only contains void, remove it.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32568


git-svn-id: http://core.svn.wordpress.org/trunk@32538 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-24 05:40:25 +00:00
Scott Taylor
082bfab426 Clean up @global doc blocks/imports for class-wp-customizer-*.php and friends.
See #32444.

Built from https://develop.svn.wordpress.org/trunk@32542


git-svn-id: http://core.svn.wordpress.org/trunk@32512 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-22 05:06:25 +00:00
Scott Taylor
27522d1c00 In category-template.php:
* Clarify/add some `return` docs.
* In `walk_category_tree()` and `walk_category_dropdown_tree()`, make behavior consistent and don't pass `$walker` by-reference - it is no longer necessary to do that with object instances.

See #32444.

Built from https://develop.svn.wordpress.org/trunk@32531


git-svn-id: http://core.svn.wordpress.org/trunk@32501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-21 21:05:24 +00:00
Boone Gorges
7314a0f3df In category dropdown, 'selected' should match against 'value_field'.
Props tlexcellent.
Fixes #32330.
Built from https://develop.svn.wordpress.org/trunk@32484


git-svn-id: http://core.svn.wordpress.org/trunk@32454 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-11 13:11:31 +00:00
Boone Gorges
2699d8d989 In wp_list_categories(), 'All' link should point to post type archive if taxonomy is not registered for 'post' or 'page'.
Instead, we point to the post type archive of the first registered
object_type that supports archives.

Props stevegrunwell, hrishiv90, boonebgorges.
Fixes #21881.
Built from https://develop.svn.wordpress.org/trunk@32292


git-svn-id: http://core.svn.wordpress.org/trunk@32263 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-24 14:57:28 +00:00
Drew Jaynes
1a2b9e6d15 Fix description alignment for the category_css_class filter docs.
See [31027]. See #31888.

Built from https://develop.svn.wordpress.org/trunk@32026


git-svn-id: http://core.svn.wordpress.org/trunk@32005 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 14:49:27 +00:00