WordPress.org

Make WordPress Core

Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#17617 closed defect (bug) (fixed)

"edit_tag_form" action incorrectly performed for categories

Reported by: michaeltyson Owned by: dd32
Milestone: 3.2 Priority: normal
Severity: normal Version: 3.2
Component: Administration Keywords: needs-patch
Focuses: Cc:

Description

There is a typo in wp-admin/edit-tag-form.php (in WP 3.1.3 and trunk, at least) that results in the "edit_tag_form" action being performed for categories, incorrectly.

The attached patch should correct the issue.

Attachments (1)

diff.patch (400 bytes) - added by michaeltyson 4 years ago.

Download all attachments as: .zip

Change History (9)

@michaeltyson4 years ago

comment:1 @ocean904 years ago

  • Keywords reporter-feedback added

comment:3 @nacin4 years ago

  • Keywords reporter-feedback removed
  • Milestone changed from Awaiting Review to 3.2

Regression somehow caused by [15820].

comment:4 @ocean904 years ago

michaeltyson, sorry. I should open my eyes when I read patches. :)

comment:5 @dd324 years ago

  • Keywords needs-patch added; has-patch removed

Looking at that changeset, and the patch here, the changeset includes a few more if's that should be an elseif.

comment:6 @dd324 years ago

Looks like a few other things from that commit had already been fixed (ie. [15823])

Plugins using hooks such as edit_tag_form need to be aware that this hook is also run for any custom taxonomies, The only pages it shouldn't be run on are categories and link categories.

Plugins should instead use the taxonomy-specific actions such as post_tag_pre_add_form, post_tag_add_form, post_tag_pre_edit_form, post_tag_edit_form_fields and post_tag_edit_form.

comment:7 @dd324 years ago

  • Owner set to dd32
  • Resolution set to fixed
  • Status changed from new to closed

In [18078]:

Correct the logic for Taxonomy edit page actions. Props michaeltyson for initial patch. Fixes #17617

comment:8 @dd324 years ago

Tidbit of code for testing these actions too (dump the filternames when run)

add_action('init', 'taxonomy_form_fields', 10000);
function taxonomy_form_fields() {
	$actions = array('edit_category_form_pre', 'edit_link_category_form_pre', 'edit_tag_form_pre', '_pre_edit_form', 'edit_category_form_fields', 'edit_link_category_form_fields', 'edit_tag_form_fields', '_edit_form_fields', 'edit_category_form', 'edit_link_category_form', 'edit_tag_form', '_edit_form', 'add_category_form_pre', 'add_link_category_form_pre', 'add_tag_form_pre', '_pre_add_form', 'edit_category_form', 'edit_link_category_form', 'add_tag_form', '_add_form');
	foreach ( array_unique($actions) as $action ) {
		if ( '_' != $action{0} )
			add_action($action, 'echo_current_filter');
		else
			foreach ( get_taxonomies() as $tax )
				add_action( $tax . $action, 'echo_current_filter');

	}
	function echo_current_filter() { var_dump(current_filter()); }
}

Note: See TracTickets for help on using tickets.