wp_update_term()
should check if get_term()
returned null.
props dlh. fixes #31954. git-svn-id: https://develop.svn.wordpress.org/trunk@32117 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
b0d6757918
commit
3b6ff03136
@ -3365,16 +3365,22 @@ function wp_unique_term_slug($slug, $term) {
|
||||
function wp_update_term( $term_id, $taxonomy, $args = array() ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( ! taxonomy_exists($taxonomy) )
|
||||
return new WP_Error('invalid_taxonomy', __('Invalid taxonomy'));
|
||||
if ( ! taxonomy_exists( $taxonomy ) ) {
|
||||
return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy' ) );
|
||||
}
|
||||
|
||||
$term_id = (int) $term_id;
|
||||
|
||||
// First, get all of the original args
|
||||
$term = get_term ($term_id, $taxonomy, ARRAY_A);
|
||||
$term = get_term( $term_id, $taxonomy, ARRAY_A );
|
||||
|
||||
if ( is_wp_error( $term ) )
|
||||
if ( is_wp_error( $term ) ) {
|
||||
return $term;
|
||||
}
|
||||
|
||||
if ( ! $term ) {
|
||||
return new WP_Error( 'invalid_term', __( 'Empty Term' ) );
|
||||
}
|
||||
|
||||
// Escape data pulled from DB.
|
||||
$term = wp_slash($term);
|
||||
|
@ -653,4 +653,16 @@ class Tests_Term_WpUpdateTerm extends WP_UnitTestCase {
|
||||
|
||||
_unregister_taxonomy( 'wptests_tax' );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 31954
|
||||
*/
|
||||
public function test_wp_update_term_with_null_get_term() {
|
||||
$t = $this->factory->term->create( array( 'taxonomy' => 'category' ) );
|
||||
$found = wp_update_term( $t, 'post_tag', array( 'slug' => 'foo' ) );
|
||||
|
||||
$this->assertWPError( $found );
|
||||
$this->assertSame( 'invalid_term', $found->get_error_code() );
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user