Wordpress - How can I allow commas in tag names?
No core hacking needed -- thanks to: HOOKS.
Hooks allow to fix the issue with a nice combination of
- a filter replacing "--" by ", " before output
- and an "if" block to make sure the output is not also filtered for the admin interface :)
- and finally, saving all your tags with comma in the format "Fox--Peter" instead of "Fox, Peter"
Here's the code:
// filter for tags with comma
// replace '--' with ', ' in the output - allow tags with comma this way
// e.g. save tag as "Fox--Peter" but display thx 2 filters like "Fox, Peter"
if(!is_admin()){ // make sure the filters are only called in the frontend
function comma_tag_filter($tag_arr){
$tag_arr_new = $tag_arr;
if($tag_arr->taxonomy == 'post_tag' && strpos($tag_arr->name, '--')){
$tag_arr_new->name = str_replace('--',', ',$tag_arr->name);
}
return $tag_arr_new;
}
add_filter('get_post_tag', 'comma_tag_filter');
function comma_tags_filter($tags_arr){
$tags_arr_new = array();
foreach($tags_arr as $tag_arr){
$tags_arr_new[] = comma_tag_filter($tag_arr);
}
return $tags_arr_new;
}
add_filter('get_terms', 'comma_tags_filter');
add_filter('get_the_terms', 'comma_tags_filter');
}
Maybe some additional details in my blog post to that topic help as well .. http://blog.foobored.com/all/wordpress-tags-with-commas/
Greets, Andi