Commit Graph

96 Commits

Author SHA1 Message Date
Boone Gorges
77484a0f4a Taxonomy: Introduce get_term_parents_list().
This new function is a taxonomy-agnostic version of `get_category_parents()`.

Props keesiemeijer, SergeyBiryukov, rafaehlers.
Fixes #17069.

git-svn-id: https://develop.svn.wordpress.org/trunk@39549 602fd350-edb4-49c9-b593-d223f7449a82
2016-12-09 16:09:31 +00:00
John Blackbourn
042451a9e1 Taxonomy: Correct the type for the first parameter of the the_category filter.
See #39130


git-svn-id: https://develop.svn.wordpress.org/trunk@39530 602fd350-edb4-49c9-b593-d223f7449a82
2016-12-07 01:22:09 +00:00
Sergey Biryukov
f493ebb369 Taxonomy: Prevent wp_list_categories() from producing not well-nested output if hide_title_if_empty is true.
Props chesio.
Fixes #38839. See #33460.

git-svn-id: https://develop.svn.wordpress.org/trunk@39280 602fd350-edb4-49c9-b593-d223f7449a82
2016-11-17 18:01:13 +00:00
Dominik Schilling (ocean90)
ad25902a65 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@38928 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-25 21:25:25 +00:00
Dominik Schilling (ocean90)
ef43d7b0fa Revert [38859] due to an incomplete implementation.
See https://core.trac.wordpress.org/ticket/37128#comment:27.
See #37128.

git-svn-id: https://develop.svn.wordpress.org/trunk@38863 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-21 17:00:29 +00:00
Pascal Birchler
e4cbb7d031 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@38859 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-21 11:11:42 +00:00
Sergey Biryukov
949d991913 Docs: Fix typo in in_category() description.
Props Kenshino, mbootsman.
Fixes #38363.

git-svn-id: https://develop.svn.wordpress.org/trunk@38828 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-19 13:45:28 +00:00
Andrea Fercia
7ea0f51f01 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@38800 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-16 20:08:01 +00:00
Dion Hulse
9ef4ac3567 Taxonomy: Avoid a fatal error in the_tags() in the event that get_the_term_list() returns a WP_Error.
Props michalzuber.
See #37291.


git-svn-id: https://develop.svn.wordpress.org/trunk@38777 602fd350-edb4-49c9-b593-d223f7449a82
2016-10-11 03:26:11 +00:00
Drew Jaynes
b4fca4a558 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@38307 602fd350-edb4-49c9-b593-d223f7449a82
2016-08-22 18:24:48 +00:00
Drew Jaynes
c750ff2d3c Docs: Fix formatting, tense, verb conjugation, and other syntax for wp-includes/* elements introduced or changed in 4.6.
Part 1/2.

See #37318.


git-svn-id: https://develop.svn.wordpress.org/trunk@38121 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-20 16:56:21 +00:00
Sergey Biryukov
920f29616a 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@37985 602fd350-edb4-49c9-b593-d223f7449a82
2016-07-06 12:39:01 +00:00
Drew Jaynes
23aa6afccb 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. 


git-svn-id: https://develop.svn.wordpress.org/trunk@37615 602fd350-edb4-49c9-b593-d223f7449a82
2016-06-01 22:45:19 +00:00
Drew Jaynes
e890bfae0d Docs: Improve documentation for wp_generate_tag_cloud() default arguments by formatting them into in a hash-notation.
See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@37587 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-27 17:59:12 +00:00
Boone Gorges
96b71d7d89 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@37573 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-26 04:49:10 +00:00
Drew Jaynes
0b56d3fd1b 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@37571 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-25 19:39:32 +00:00
Drew Jaynes
2b9ea8de78 Docs: Add missing documentation for the style argument in the DocBlock for wp_list_categories().
Props birgire for the initial patch.
See #36693.


git-svn-id: https://develop.svn.wordpress.org/trunk@37569 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-25 19:34:41 +00:00
Drew Jaynes
bd1d3f0a8c 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@37542 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-23 18:58:48 +00:00
Drew Jaynes
74d96b738f 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@37496 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 18:24:47 +00:00
Drew Jaynes
520ed6b725 Docs: Remove/replace invalid inline @link tags in DocBlocks in wp-includes/*.
Fixes #36910.


git-svn-id: https://develop.svn.wordpress.org/trunk@37487 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 17:39:00 +00:00
Drew Jaynes
8a87c7c423 Docs: Remove several invalid inline @link tags from the DocBlock for wp_list_categories().
See #36910.


git-svn-id: https://develop.svn.wordpress.org/trunk@37486 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-22 17:23:13 +00:00
Boone Gorges
63755028e8 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@37465 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-19 02:38:33 +00:00
Boone Gorges
20fbd41ebe Beautify, simplify, lovelify, alignify the default argument array in wp_dropdown_categories().
See #31909.

git-svn-id: https://develop.svn.wordpress.org/trunk@37463 602fd350-edb4-49c9-b593-d223f7449a82
2016-05-19 02:16:36 +00:00
John Blackbourn
d438831da3 Taxonomy: Correct the accetped types for the taxonomy element in the arguments passed to wp_dropdown_categories().
Props grapplerulrich
Fixes #35446


git-svn-id: https://develop.svn.wordpress.org/trunk@36289 602fd350-edb4-49c9-b593-d223f7449a82
2016-01-13 20:15:19 +00:00
Pascal Birchler
b62421681e 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@36135 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-31 11:29:19 +00:00
Drew Jaynes
fe89f7620f 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@36013 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-18 23:37:58 +00:00
Boone Gorges
6d9f50febd 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@36005 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-18 18:11:44 +00:00
Boone Gorges
22b0cb2029 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@35984 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-17 16:26:06 +00:00
Boone Gorges
52384c2e6b 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@35850 602fd350-edb4-49c9-b593-d223f7449a82
2015-12-10 03:34:51 +00:00
Sergey Biryukov
1940317385 In wp_list_categories(), rewrite a long condition for clarity.
See #34363.

git-svn-id: https://develop.svn.wordpress.org/trunk@35293 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-20 16:12:21 +00:00
Boone Gorges
2713768bb0 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@35291 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-20 12:54:55 +00:00
Drew Jaynes
0fb4304628 Taxonomy: Improve deprecated argument strings for the 'link' type in get_categories() and wp_dropdown_categories().
Props swissspidy, gagan0123.
Fixes #34318.


git-svn-id: https://develop.svn.wordpress.org/trunk@35264 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-18 15:34:55 +00:00
Scott Taylor
55a42e8afa Taxonomy: in wp_list_categories(), add an arg: separator, to allow the overriding of <br/>.
Props wojtek.szkutnik.
Fixes #9025.


git-svn-id: https://develop.svn.wordpress.org/trunk@35140 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-13 17:01:10 +00:00
Boone Gorges
ed4eee668e 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@35032 602fd350-edb4-49c9-b593-d223f7449a82
2015-10-12 15:12:29 +00:00
Boone Gorges
3b7187eade 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@34696 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-29 19:11:12 +00:00
Boone Gorges
de0b5c846f 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@34625 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-27 02:21:43 +00:00
Boone Gorges
c39a4a6447 Pass the post ID to the get_the_categories filter.
Props SergeyBiryukov.
See #9227.

git-svn-id: https://develop.svn.wordpress.org/trunk@34624 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-27 02:16:23 +00:00
Drew Jaynes
fa11dc9c5b Docs: Clarify the file header summary and version for wp-includes/category-template.php.
See #33413. See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@34420 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 14:22:48 +00:00
Scott Taylor
adfd136bee 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@34110 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 03:09:37 +00:00
Boone Gorges
27c8977af9 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@33804 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-29 19:45:35 +00:00
Boone Gorges
718787cd18 Rename param added to wp_list_categories() in [33764] to 'hide_title_if_empty'.
Props vilkatis, DrewAPicture.
Fixes #33565.

git-svn-id: https://develop.svn.wordpress.org/trunk@33767 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-27 02:08:31 +00:00
Boone Gorges
1f7031e2f8 After [33764], fix docblock formatting for wp_list_categories().
See #33460.

git-svn-id: https://develop.svn.wordpress.org/trunk@33765 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 19:42:02 +00:00
Boone Gorges
a684d5d19d 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@33764 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 19:41:55 +00:00
Boone Gorges
91a24f5cca 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@33763 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 15:29:35 +00:00
Boone Gorges
c1b8f1f72a 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@33681 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-21 01:10:34 +00:00
Drew Jaynes
c1e158cf87 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@33318 602fd350-edb4-49c9-b593-d223f7449a82
2015-07-17 22:57:20 +00:00
Boone Gorges
10d81a3fe5 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@32996 602fd350-edb4-49c9-b593-d223f7449a82
2015-06-29 14:15:59 +00:00
Scott Taylor
39ef6a72c5 Use void instead of null where appropriate when pipe-delimiting @return types. If a @return only contains void, remove it.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32568 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-24 05:39:47 +00:00
Scott Taylor
febd12c957 Clean up @global doc blocks/imports for class-wp-customizer-*.php and friends.
See #32444.


git-svn-id: https://develop.svn.wordpress.org/trunk@32542 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-22 05:05:19 +00:00
Scott Taylor
51717c41af 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@32531 602fd350-edb4-49c9-b593-d223f7449a82
2015-05-21 21:04:32 +00:00