How to change the “Item updated” message for a custom taxonomy
This is the first in a series of posts on some more technical (read ‘developer’) issues that I have come across. I’m documenting them here primarily so I can remember them, but hopefully some other developer will find hem useful someday. I’ll focus on challenges for which I have trouble finding solutions on the Internet, not solutions that are readily available in many tutorials.
Today I was working on a “Teams” custom taxonomy for the next MSTW Team Rosters release. This is a custom taxonomy ( think category or tag ) that links a group of “Players” ( a custom post type ) together as a team. I added a metadata field to the taxonomy in order to link the Team Rosters plugin “Teams” together with the Schedules & Scoreboards plugin’s “Teams”. The data for each “Team” – items like home venue, logos, colors – will live in the Schedules & Scoreboards data tables, but be accessible to the Team Rosters plugin. Those readers who use the MSTW plugins will learn more about this cool new feature later.
As I completed this code, I noticed that when updating a Team, the update message looked like this:
Hummm, what’s with this “Item” stuff? That should read “Team”. It seemed like that fix should be a simple WP filter (and it was). I do essentially the same thing for custom post types (see below).
But this was a bit different, it was a taxonomy. After Goggling my brains out with little success (ergo, this post), I decided to dig into the WordPress core code, and found the filter I needed in /wp-admin/edit-tags.php
. The filter is “term_updated_messages
“, but (of course) it doesn’t work quite the same as the “post_updated_messages
” used for CPTs. It’s a bit simpler, and there is no “bulk_term_updated_messages
” like there is for CPTs ( “bulk_post_updated_messages
” ). I assume because there is no trash can for terms ( items in a taxonomy ) like there is for posts.
So the code is pretty simple once you find it. First add the filter.
add_filter('term_updated_messages', 'mstw_tr_updated_term_messages');
Then write the callback.
function mstw_tr_updated_term_messages( $messages ) { //mstw_tr_team is the custom taxonomy $messages['mstw_tr_team'] = array( 0 => '', 1 => __( 'Team added.', 'mstw-team-rosters' ), 2 => __( 'Team deleted.', 'mstw-team-rosters' ), 3 => __( 'Team updated.', 'mstw-team-rosters' ), 4 => __( 'Team not added.', 'mstw-team-rosters' ), 5 => __( 'Team not updated.', 'mstw-team-rosters' ), 6 => __( 'Teams deleted.', 'mstw-team-rosters' ), ); return $messages; } //End: mstw_tr_updated_term_messages( )
And there you have it.
I hope that helps somebody someday. I’m sure I’ll end up looking for it eventually. If you have an questions, send me an e-mail.