Commit Graph
59 Commits
Author SHA1 Message Date
Scott Taylor ff8ae69fce Eliminate the use of extract() in wp_delete_term().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28466 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-17 14:54:03 +00:00
Scott Taylor 06c87f681a Eliminate the use of extract() in get_terms().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28465 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-17 14:46:07 +00:00
Scott Taylor 02066d4241 Eliminate the use of extract() in wp_insert_term().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28464 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-17 14:15:40 +00:00
Scott Taylor b1b30ad58c Eliminate use of extract() in wp_update_term().
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28461 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-16 21:28:05 +00:00
Scott Taylor ae938f524e Eliminate use of extract() in wp_get_object_terms().
There are 3 properties, just set them to variables. They are used too often to warrant a refactor.

See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28441 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 19:57:57 +00:00
Scott Taylor 034de7f1de Eliminate the use of extract() in get_objects_in_term(). Only one property (order) was extracted.
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28423 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 05:42:55 +00:00
Scott Taylor e00ce3ae95 Eliminate the use of extract() in WP_Tax_Query::get_sql(). All unit tests still pass.
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28422 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 05:40:40 +00:00
Scott Taylor 17edee17af Eliminate the use of extract() in the_taxonomies(). Adds unit test.
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28421 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 05:24:54 +00:00
Scott Taylor 3e54a1fab5 Eliminate use of extract() in get_the_taxonomies(). Adds unit test.
See #22400.


git-svn-id: https://develop.svn.wordpress.org/trunk@28415 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-15 03:50:46 +00:00
Sergey Biryukov 6c401709f6 Correct 'show_in_menu' parameter description in register_taxonomy().
fixes #27943.

git-svn-id: https://develop.svn.wordpress.org/trunk@28241 602fd350-edb4-49c9-b593-d223f7449a82
2014-05-02 11:28:05 +00:00
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