In get_edit_term_link(), default to a valid $object_type.

The $object_type param is used to set the 'post_type' query var, which
determines the post type menu that will be expanded when clicking through to
the term edit page. Not all taxonomies are associated with Posts, so it makes
sense to default to a post_type that the taxonomy is actually associated with.

Props DzeryCZ, juliobox.
Fixes #29251.

git-svn-id: https://develop.svn.wordpress.org/trunk@31218 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges 2015-01-16 21:36:12 +00:00
parent 5deee71273
commit 5b7baae907

View File

@ -888,9 +888,10 @@ function edit_tag_link( $link = '', $before = '', $after = '', $tag = null ) {
* *
* @since 3.1.0 * @since 3.1.0
* *
* @param int $term_id Term ID * @param int $term_id Term ID.
* @param string $taxonomy Taxonomy * @param string $taxonomy Taxonomy.
* @param string $object_type The object type * @param string $object_type The object type. Used to highlight the proper post type menu on the linked page.
* Defaults to the first object_type associated with the taxonomy.
* @return string The edit term link URL for the given term. * @return string The edit term link URL for the given term.
*/ */
function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) { function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) {
@ -906,8 +907,11 @@ function get_edit_term_link( $term_id, $taxonomy, $object_type = '' ) {
'tag_ID' => $term->term_id, 'tag_ID' => $term->term_id,
); );
if ( $object_type ) if ( $object_type ) {
$args['post_type'] = $object_type; $args['post_type'] = $object_type;
} else if ( ! empty( $tax->object_type ) ) {
$args['post_type'] = reset( $tax->object_type );
}
$location = add_query_arg( $args, admin_url( 'edit-tags.php' ) ); $location = add_query_arg( $args, admin_url( 'edit-tags.php' ) );