mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-08-11 12:20:22 +00:00
Introduce wp_get_object_terms_args filter.
This filter allows developers to modify the arguments passed to `wp_get_object_terms()` before the query is run. Props enrico.sorcinelli. Fixes #35925. git-svn-id: https://develop.svn.wordpress.org/trunk@40994 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -732,4 +732,32 @@ class Tests_Term_WpGetObjectTerms extends WP_UnitTestCase {
|
||||
|
||||
$this->assertEquals( array( $t1, $t3, $t2 ), $found );
|
||||
}
|
||||
|
||||
/**
|
||||
* @ticket 35925
|
||||
*/
|
||||
public function test_wp_get_object_terms_args_filter() {
|
||||
$taxonomy = 'wptests_tax_4';
|
||||
|
||||
register_taxonomy( $taxonomy, 'post', array( 'sort' => 'true' ) );
|
||||
$post_id = self::factory()->post->create();
|
||||
$terms = array( 'foo', 'bar', 'baz' );
|
||||
$set = wp_set_object_terms( $post_id, $terms, $taxonomy );
|
||||
|
||||
// Filter for maintaining term order
|
||||
add_filter( 'wp_get_object_terms_args', array( $this, 'filter_wp_get_object_terms_args' ), 10, 3 );
|
||||
|
||||
// Test directly
|
||||
$get_object_terms = wp_get_object_terms( $post_id, $taxonomy, array( 'fields' => 'names' ) );
|
||||
$this->assertEquals( $terms, $get_object_terms );
|
||||
|
||||
// Test metabox taxonomy (admin advanced edit)
|
||||
$terms_to_edit = get_terms_to_edit( $post_id, $taxonomy );
|
||||
$this->assertEquals( implode( ',', $terms ), $terms_to_edit );
|
||||
}
|
||||
|
||||
function filter_wp_get_object_terms_args ( $args, $object_ids, $taxonomies ) {
|
||||
$args['orderby'] = 'term_order';
|
||||
return $args;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user