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.