Commit Graph

49 Commits

Author SHA1 Message Date
Andrew Nacin
05ea231402 Avoid infinite recursion in get_term_children() when a term is incorrectly a parent of itself.
props kovshenin.
fixes #27123.


git-svn-id: https://develop.svn.wordpress.org/trunk@27837 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-29 06:07:17 +00:00
Drew Jaynes (DrewAPicture)
d5100269c8 Inline documentation for hooks in wp-includes/taxonomy.php.
Props kpdesign for some minor language tweaks.
Fixes #27505.


git-svn-id: https://develop.svn.wordpress.org/trunk@27827 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-28 21:28:23 +00:00
Drew Jaynes
5fde82be76 Better standardize parameter value types in PHPDocs where both a post ID or WP_Post would be acceptable.
Covers cases where previously only `int` or `int|object` types were notated.

Props coffee2code for the original patch.
See #20495.


git-svn-id: https://develop.svn.wordpress.org/trunk@27473 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-08 19:31:51 +00:00
Scott Taylor
3010c5aa20 In get_terms(), leverage get_term_children() over _get_term_children() when making sure to show empty terms that have children in a hierarchical taxonomy while avoiding duplicates.
Adds unit test for `child_of` param. Adjusts unit tests for `get_terms()`.

See [27108] and [27125].
Props SergeyBiryukov.
Fixes #27123.



git-svn-id: https://develop.svn.wordpress.org/trunk@27458 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-07 19:29:01 +00:00
Scott Taylor
666cd37087 get_term_children() returns an array of IDs, not objects. The docs have been updated to reflect this.
Fixes #27312.



git-svn-id: https://develop.svn.wordpress.org/trunk@27457 602fd350-edb4-49c9-b593-d223f7449a82
2014-03-07 19:15:11 +00:00
Andrew Nacin
6a35efe1e5 Revert [27115] and let cache backends handle the stripping of spaces in cache keys as necessary.
microtime() returns greater precision than microtime(true).

see #27000, #23448, #26903, #14485.


git-svn-id: https://develop.svn.wordpress.org/trunk@27300 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-26 22:04:52 +00:00
Drew Jaynes
647f80595d Remove all @package and @subpackage PHPDoc tags not at the file- or class-levels in core.
See #27200.


git-svn-id: https://develop.svn.wordpress.org/trunk@27262 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-25 17:13:08 +00:00
Scott Taylor
664bf1fea2 Remove extraneous type-casting in wp_get_object_terms().
Props OriginalEXE.
Fixes #27133.



git-svn-id: https://develop.svn.wordpress.org/trunk@27186 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-17 21:55:41 +00:00
Scott Taylor
2e9d155703 Partially revert [27101], [27102], [27141], and [27142]. Those commits introduced new functions to sync up cache invalidation events. The current commit alters existing internals.
"The cache invalidation with static was introduced in r9102 with version 2.7. Multisite wasn't in core back then, so something like switch_to_blog() wasn't a concern, but now it breaks if you switch the blog in between calls to clean_term_cache."

This solution is simpler. All unit tests pass. Removes unnecessary tests linked to removed functions.

Props kovshenin.
Fixes #14485, #22526.



git-svn-id: https://develop.svn.wordpress.org/trunk@27163 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-11 16:49:11 +00:00
Scott Taylor
e966a23683 Reuse the terms cache group for taxonomy cache invalidation.
See #22526, #14485, [27101], [27102].



git-svn-id: https://develop.svn.wordpress.org/trunk@27142 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-09 17:41:07 +00:00
Drew Jaynes
eb43703bba Improve inline documentation for several 'last_changed'-related functions introduced in [27101] and [27102].
Functions include:
* `get_taxonomy_last_changed()`
* `set_taxonomy_last_changed()`
* `post_taxonomy_is_fresh()`
* `taxonomy_hierarchy_is_fresh()`

Fixes #22526, #14485.


git-svn-id: https://develop.svn.wordpress.org/trunk@27141 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-09 02:01:28 +00:00
Scott Taylor
81679ef453 When a term_id matches in _get_term_children(), recurse through its children until there is no more depth in the hierarchy. Since get_terms() return terms with a count of 0 when their children are not empty, we must return all children so that get_terms() can check their count.
In [27108], #26903 was fixed, but only because we were using the example in the ticket, leaving out infinite depth for hierarchical taxonomies.

Adds unit tests, including `Tests_Term_getTerms::test_get_terms_seven_levels_deep()`.

Fixes #26903. Again.



git-svn-id: https://develop.svn.wordpress.org/trunk@27125 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-07 19:53:01 +00:00
Andrew Nacin
4f5608f653 Use a float for last_changed microtime cache values.
microtime() by default returns a string with a space, which isn't allowed for keys in some cache backends.

props _jameslee, drozdz.
fixes #27000. see #23448.


git-svn-id: https://develop.svn.wordpress.org/trunk@27115 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-07 08:13:37 +00:00
Scott Taylor
8dad11bfe2 In get_terms(), don't set automatically hierarchical to false when parent => 0 is passed. The default value for parent is ''.
In `_get_term_children()`, don't skip a top-level term without first including its children in the returned term list. Ironically, the call to `_get_term_children()` in `get_terms()` has a comment stating `"Make sure we show empty categories that have children."`, but it didn't work if you were retrieving top-level categories only.

All unit tests pass. Added a unit test based on the use case described in this ticket.

Fixes #26903.



git-svn-id: https://develop.svn.wordpress.org/trunk@27108 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-06 17:44:50 +00:00
Scott Taylor
50a96f165e Regenerate the term hierarchy cache ({taxonomy}_children) when it is out of sync with the passed taxonomy's last_changed value.
Introduces `taxonomy_hierarchy_is_fresh()`, which is only called in `_get_term_hierarchy()`. The taxonomy's `last_changed` value is checked against the value of `wp_cache_get( 'hierarchy_last_changed', $taxonomy )`.

Adds a unit test - `Tests_Term:test_hierachy_invalidation()`.

See [27101], which makes this type of cache invalidation possible.
Fixes #14485.



git-svn-id: https://develop.svn.wordpress.org/trunk@27102 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-06 01:58:01 +00:00
Scott Taylor
e33ef0c6ac Add cache invalidation when updating a term, example: create a category, assign it to a post, edit the category. Currently, the post's term cache is not updated. When updating terms in a given taxonomy, invalidate the object term caches linked to that taxonomy.
Introduce `get_taxonomy_last_changed()`, `set_taxonomy_last_changed()`, and `post_taxonomy_is_fresh()`.

`post_taxonomy_is_fresh()` is only called in `get_object_term_cache()` - at which point the taxonomy's `last_changed` value is checked against the post's `{$taxonomy}_last_changed` value.

`set_taxonomy_last_changed()` is called whenever directory database queries are made that insert new terms or affect existing terms.

Fixes #22526.



git-svn-id: https://develop.svn.wordpress.org/trunk@27101 602fd350-edb4-49c9-b593-d223f7449a82
2014-02-06 01:40:05 +00:00
Scott Taylor
13c1dd0004 get_comment(), wp_get_post_revision(), and get_term() all used to return by reference. Because of this, $null was set to null so the return value would be a variable where applicable. This has not been necessary since [21792], so the $nulls have been removed.
Props toszcze.
Fixes #24768.



git-svn-id: https://develop.svn.wordpress.org/trunk@27057 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-29 06:45:54 +00:00
Drew Jaynes
707e91c1e8 Add inline documentation for the 'show_admin_column' argument added to register_taxonomy() in 3.5.
Also adds a 'show_admin_column' value to the defaults array.

Props johnbillion.
Fixes #26707.


git-svn-id: https://develop.svn.wordpress.org/trunk@26912 602fd350-edb4-49c9-b593-d223f7449a82
2014-01-07 02:12:03 +00:00
Drew Jaynes
bd39e26032 First there were two, and now there are three -- in the @since versions that came before and that shall be. And so it will be, says nacin.
Props JustinSainton, SergeyBiryukov, DrewAPicture.
Fixes #26713.


git-svn-id: https://develop.svn.wordpress.org/trunk@26868 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-24 18:56:05 +00:00
Andrew Nacin
922125f1cc Be specific in term_exists error messages in wp_insert_term() as to what already exists (name, or name and slug).
props ericmann, SergeyBiryukov.
fixes #15741.


git-svn-id: https://develop.svn.wordpress.org/trunk@26544 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-02 23:05:49 +00:00
Scott Taylor
b595282dff Fix lingering reference problem in wp_get_object_terms() by not setting the foreach'd vars to a reference. Adds unit test.
Props stephenharris.
Fixes #26339.



git-svn-id: https://develop.svn.wordpress.org/trunk@26510 602fd350-edb4-49c9-b593-d223f7449a82
2013-12-01 23:59:13 +00:00
Sergey Biryukov
fc8d09e2a6 A negative term parent value should be sanitized to 0, not 1. Fix a regression in sanitize_term_field() caused by [26010].
props mattheu for initial patch.
fixes #25852.

git-svn-id: https://develop.svn.wordpress.org/trunk@26028 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-06 23:40:46 +00:00
Scott Taylor
ed22220a0f Cast proper fields to int when returning from wp_get_object_terms(). Add term_taxonomy_id and object_id to the list in sanitize_term() and sanitize_term_field().
Fixes #17646. Adds unit tests.
Props simonwheatley, dd32, kovshenin.



git-svn-id: https://develop.svn.wordpress.org/trunk@26010 602fd350-edb4-49c9-b593-d223f7449a82
2013-11-05 01:18:02 +00:00
Helen Hou-Sandi
b2e15261ba Allow passing false for the meta_box_cb arg in register_taxonomy() to turn off the meta box display entirely. fixes #21543.
git-svn-id: https://develop.svn.wordpress.org/trunk@25948 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-27 16:28:19 +00:00
Andrew Nacin
90b55d0279 Fix the exclude_tree argument in get_terms(), which fixes the exclude argument in wp_list_categories().
This was a 3.7 regression caused by [25162].

props dd32.
see #25710 for trunk.


git-svn-id: https://develop.svn.wordpress.org/trunk@25933 602fd350-edb4-49c9-b593-d223f7449a82
2013-10-26 15:03:10 +00:00
Andrew Nacin
b0717588b7 Introduce register_taxonomy_for_object_type().
props leewillis77.
fixes #11058.


git-svn-id: https://develop.svn.wordpress.org/trunk@25596 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-24 02:54:00 +00:00
Andrew Nacin
9a45c4a414 Pass $taxonomies to two more filters in get_terms().
props johnbillion.
fixes #18754.


git-svn-id: https://develop.svn.wordpress.org/trunk@25576 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 18:38:50 +00:00
Andrew Nacin
46fef6ef24 Introduce a meta_box_cb argument for register_taxonomy().
The specified callback function is used as the meta box callback for the taxonomy.

props garyc40, helen.
fixes #14206.


git-svn-id: https://develop.svn.wordpress.org/trunk@25572 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-23 17:11:09 +00:00
Scott Taylor
0d6c7bbbc3 Add @access private to _get_custom_object_labels(), which was already implied by the dangling underscore. Cast $labels to array in get_taxonomy_labels() and _get_custom_object_labels().
Props nacin, foofy.
Fixes #16310.



git-svn-id: https://develop.svn.wordpress.org/trunk@25553 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-21 17:43:14 +00:00
Scott Taylor
325b1bf175 Ensure that terms with a post count of 0 are not returned in wp_count_terms() when hide_empty => true. Adds unit test which ensures that wp_count_terms() returns 0.
Props markjaquith.
Fixes #15919.



git-svn-id: https://develop.svn.wordpress.org/trunk@25551 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-21 16:47:43 +00:00
Drew Jaynes
bb42ed6893 Clarify error handling and special cases in the wp_insert_term() phpdoc block.
props lgedeon, SergeyBiryukov. See #22801.


git-svn-id: https://develop.svn.wordpress.org/trunk@25498 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-19 16:08:30 +00:00
Sergey Biryukov
15265acec5 Update inline documentation for wp_insert_term().
props DrewAPicture.
fixes #22801.

git-svn-id: https://develop.svn.wordpress.org/trunk@25489 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-19 01:56:16 +00:00
Scott Taylor
88639cb9b4 Use wp_parse_args() again for $args['rewrite'] in register_taxonomy().
Props SergeyBiryukov.
Fixes #23668.



git-svn-id: https://develop.svn.wordpress.org/trunk@25483 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-18 20:38:53 +00:00
Scott Taylor
f9877147f6 Use reset() to access the first element of an array, don't assume there is an item at index 0.
See #25282.



git-svn-id: https://develop.svn.wordpress.org/trunk@25384 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-12 05:08:33 +00:00
Scott Taylor
d091e1d0b7 Avoid a notice by casting $args['rewrite'] to array() before adding a slug property and running array_merge().
Fixes #23668.



git-svn-id: https://develop.svn.wordpress.org/trunk@25351 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-11 17:17:00 +00:00
Scott Taylor
3ee8135baa Don't call sanitize_title_with_dashes( $taxonomy ) in register_taxonomy() unless $args['rewrite']['slug'] is empty.
Props SergeyBiryukov.
Fixes #23668.



git-svn-id: https://develop.svn.wordpress.org/trunk@25335 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-11 00:08:04 +00:00
Scott Taylor
0c0c81d81c Add term_taxonomy_id to available fields in get_term_by(). Adds unit test.
Props jchristopher.
Fixes #21651.



git-svn-id: https://develop.svn.wordpress.org/trunk@25334 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-11 00:01:19 +00:00
Scott Taylor
e8c7634e79 Avoid database error when include or exclude is not really a term_id. Adds more unit tests.
Props kovshenin.
Fixes #11823.



git-svn-id: https://develop.svn.wordpress.org/trunk@25257 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-05 17:14:54 +00:00
Scott Taylor
89997e4c80 Introduce description__like arg to get_terms(). Make description__like and name__like perform LIKEs with a wildcard on both sides of passed string. Previously, strings had to match the beginning of the name, so searching for burrito in This is a burrito would fail. Adds unit tests.
Props aaroncampbell for the original patch, 5 years ago.
Fixes #8214.



git-svn-id: https://develop.svn.wordpress.org/trunk@25241 602fd350-edb4-49c9-b593-d223f7449a82
2013-09-04 19:40:17 +00:00
Scott Taylor
59b9a3a6f8 No need to re-map the return values of wp_parse_id_list() to int.
See #22074, #11823.



git-svn-id: https://develop.svn.wordpress.org/trunk@25169 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-29 18:53:03 +00:00
Scott Taylor
d34baebc1d Search term name and slug when the search arg is passed to get_terms(). Adds unit test.
Props wojtek.szkutnik.
Fixes #13992.



git-svn-id: https://develop.svn.wordpress.org/trunk@25164 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-29 16:49:43 +00:00
Scott Taylor
a4a765c5fd Improve the include / exclude SQL generation in get_terms() by using IN and NOT IN where applicable. Adds unit tests for include / exclude.
Props sirzooro, duck_.

Fixes #11823.



git-svn-id: https://develop.svn.wordpress.org/trunk@25162 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-29 16:23:30 +00:00
Scott Taylor
69785902db Support id=>name and id=>slug values for fields arg in get_terms(). Adds unit tests.
Props mikeschinkel.

Fixes #13661.



git-svn-id: https://develop.svn.wordpress.org/trunk@25161 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-29 15:18:08 +00:00
Andrew Nacin
713c6cfb88 Pass $taxonomies to the get_terms_orderby filter.
props johnbillion.
fixes #18754.


git-svn-id: https://develop.svn.wordpress.org/trunk@25142 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-27 21:05:03 +00:00
Dominik Schilling (ocean90)
ad422b8366 Introduce show_in_menu for register_taxonomy.
Accepts boolean: true to show, false to hide. If not set, the default is inherited from show_ui.

fixes #20930.

git-svn-id: https://develop.svn.wordpress.org/trunk@25133 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-26 22:34:56 +00:00
Dominik Schilling (ocean90)
d0365d1383 Improve inline docs for register_post_type() and register_taxonomy().
* register_taxonomy: Use the same doc format for the associative array arg as used for register_post_type()
* register_taxonomy: Improve docs for _builtin, capabilities, hierarchical and rewrite args
* register_taxonomy: Use the same order in $defaults as in docblock
* register_taxonomy: Replace is_null with null ===, to be consistent
* register_post_type: Use the same order in $defaults as in docblock
* register_post_type: Improve docs for @uses and default fallbacks
And while we're on it: Whitespaces.

fixes #25150.

git-svn-id: https://develop.svn.wordpress.org/trunk@25130 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-26 20:23:34 +00:00
Scott Taylor
46c24c3cf2 Use reset() to grab the first taxonomy in an array, not by numerical index. Cleans up whitespace. Props webord, nbachiyski. Fixes #23506.
git-svn-id: https://develop.svn.wordpress.org/trunk@25108 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-23 21:28:34 +00:00
Scott Taylor
39171d7527 Check term_id against the $term object, not the non-existent var $args. Props rboren. Fixes #12729.
git-svn-id: https://develop.svn.wordpress.org/trunk@25106 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-23 21:04:22 +00:00
Andrew Nacin
b43712e0f7 New develop.svn.wordpress.org repository based on the old core.svn repository.
* All WordPress files move to a src/ directory.
 * New task runner (Grunt), configured to copy a built WordPress to build/.
 * svn:ignore and .gitignore for Gruntfile.js, wp-config.php, and node.js.
 * Remove Akismet external from develop.svn. Still exists in core.svn.
 * Drop minified files from src/. The build process will now generate these.

props koop.
see #24976.

and see http://wp.me/p2AvED-1AI.



git-svn-id: https://develop.svn.wordpress.org/trunk@25001 602fd350-edb4-49c9-b593-d223f7449a82
2013-08-07 05:25:25 +00:00