Don't parse empty 'tax_input' keys in edit_post()
.
This fixes a bug introduced in [31359] where saving a tax_input that contained only whitespace would result in a random tag being erroneously added to the post. See #30615. git-svn-id: https://develop.svn.wordpress.org/trunk@31392 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
350cfba6c8
commit
d4fbf04671
@ -337,6 +337,11 @@ function edit_post( $post_data = null ) {
|
|||||||
|
|
||||||
$clean_terms = array();
|
$clean_terms = array();
|
||||||
foreach ( $terms as $term ) {
|
foreach ( $terms as $term ) {
|
||||||
|
// Empty terms are invalid input.
|
||||||
|
if ( empty( $term ) ) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$_term = get_terms( $taxonomy, array(
|
$_term = get_terms( $taxonomy, array(
|
||||||
'name' => $term,
|
'name' => $term,
|
||||||
'fields' => 'ids',
|
'fields' => 'ids',
|
||||||
|
@ -175,6 +175,36 @@ class Tests_Admin_includesPost extends WP_UnitTestCase {
|
|||||||
$this->assertContains( 'baz', wp_list_pluck( $found, 'name' ) );
|
$this->assertContains( 'baz', wp_list_pluck( $found, 'name' ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @ticket 30615
|
||||||
|
*/
|
||||||
|
public function test_edit_post_should_not_create_terms_for_an_empty_tag_input_field() {
|
||||||
|
$u = $this->factory->user->create( array( 'role' => 'editor' ) );
|
||||||
|
wp_set_current_user( $u );
|
||||||
|
|
||||||
|
register_taxonomy( 'wptests_tax', array( 'post' ) );
|
||||||
|
$t1 = $this->factory->term->create( array(
|
||||||
|
'taxonomy' => 'wptests_tax',
|
||||||
|
'name' => 'foo',
|
||||||
|
'slug' => 'bar',
|
||||||
|
) );
|
||||||
|
|
||||||
|
$p = $this->factory->post->create();
|
||||||
|
|
||||||
|
$post_data = array(
|
||||||
|
'post_ID' => $p,
|
||||||
|
'tax_input' => array(
|
||||||
|
'wptests_tax' => ' ',
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
edit_post( $post_data );
|
||||||
|
|
||||||
|
$found = wp_get_post_terms( $p, 'wptests_tax' );
|
||||||
|
|
||||||
|
$this->assertEmpty( $found );
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ticket 27792
|
* @ticket 27792
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user