From f7b8ff5a2ec5e7018603f02db04a8b21999bce37 Mon Sep 17 00:00:00 2001 From: Boone Gorges Date: Wed, 1 Jul 2015 12:53:05 +0000 Subject: [PATCH] Don't allow `$field` param to be passed to `get_term_link()`. The new parameter creates inconsistencies in the signatures of the various functions for fetching term links (`get_term_feed_link()`, `get_edit_term_link()`, etc.). Reverts [32553]. See #14156. git-svn-id: https://develop.svn.wordpress.org/trunk@33022 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/taxonomy.php | 15 +++----- tests/phpunit/tests/term/getTermLink.php | 47 ------------------------ 2 files changed, 5 insertions(+), 57 deletions(-) diff --git a/src/wp-includes/taxonomy.php b/src/wp-includes/taxonomy.php index 15e23ffc3b..6d1888fe68 100644 --- a/src/wp-includes/taxonomy.php +++ b/src/wp-includes/taxonomy.php @@ -4437,27 +4437,22 @@ function wp_get_split_term( $old_term_id, $taxonomy ) { * Generate a permalink for a taxonomy term archive. * * @since 2.5.0 - * @since 4.3.0 Introduced `$field` argument. * * @global WP_Rewrite $wp_rewrite * * @param object|int|string $term The term object, ID, or slug whose link will be retrieved. * @param string $taxonomy Optional. Taxonomy. Default empty. - * @param string $field Optional. The term field that should be matched by the `$term` argument. Accepts - * any `$field` values accepted by `get_term_by()`: 'slug', 'name', - * 'term_taxonomy_id', or 'id'. Default is 'slug', unless `$term` is an integer, in - * which case it's asssumed to be an ID. * @return string|WP_Error HTML link to taxonomy term archive on success, WP_Error if term does not exist. */ -function get_term_link( $term, $taxonomy = '', $field = null ) { +function get_term_link( $term, $taxonomy = '' ) { global $wp_rewrite; if ( !is_object($term) ) { - if ( is_null( $field ) ) { - $field = is_int( $term ) ? 'id' : 'slug'; + if ( is_int( $term ) ) { + $term = get_term( $term, $taxonomy ); + } else { + $term = get_term_by( 'slug', $term, $taxonomy ); } - - $term = get_term_by( $field, $term, $taxonomy ); } if ( !is_object($term) ) diff --git a/tests/phpunit/tests/term/getTermLink.php b/tests/phpunit/tests/term/getTermLink.php index 728a7cc5b5..748b8e48c9 100644 --- a/tests/phpunit/tests/term/getTermLink.php +++ b/tests/phpunit/tests/term/getTermLink.php @@ -54,53 +54,6 @@ class Tests_Term_GetTermLink extends WP_UnitTestCase { $term = (string) $t1; - $actual = get_term_link( $term, 'wptests_tax', 'id' ); - $this->assertContains( 'wptests_tax=foo', $actual ); - } - - /** - * @ticket 14156 - */ - public function test_should_match_field_by_name() { - $t = $this->factory->term->create( array( - 'taxonomy' => 'wptests_tax', - 'slug' => 'foo', - 'name' => 'Bar Term', - ) ); - - $actual = get_term_link( 'Bar Term', 'wptests_tax', 'name' ); - $this->assertContains( 'wptests_tax=foo', $actual ); - } - - /** - * @ticket 14156 - */ - public function test_should_match_field_by_tt_id() { - $t = $this->factory->term->create( array( - 'taxonomy' => 'wptests_tax', - 'slug' => 'foo', - 'name' => 'Bar Term', - ) ); - - $actual = get_term_link( 'Bar Term', 'wptests_tax', 'name' ); - $this->assertContains( 'wptests_tax=foo', $actual ); - } - - /** - * @ticket 14156 - */ - public function test_numeric_string_should_be_interpreted_as_term_id_if_id_field_is_specified() { - $t1 = $this->factory->term->create( array( - 'taxonomy' => 'wptests_tax', - 'name' => 'foo', - ) ); - $t2 = $this->factory->term->create( array( - 'taxonomy' => 'wptests_tax', - 'slug' => $t1, - ) ); - - $term = (string) $t1; - $actual = get_term_link( $term, 'wptests_tax' ); $this->assertContains( 'wptests_tax=' . $term, $actual ); }