3

I'm creating my own form based on this and I'd like to have a tag selector which is similar to the one on StackExchange. I can roll my own but I was wondering if something similar already exists.

Thanks!

3

you can do that using JQuery autocomplete plugin

and once you have included all of the needed JS files just add this code after your new post form

$terms = get_terms("post_tag");
$tags = '';
$count = count($terms);
 if ( $count > 0 ){ 
     foreach ( $terms as $term ) {
       $tags .=  '"'.$term->name.'", '; 
    }
    $tags = substr($tags,0,-2);
 }

echo ' <script>
JQuery("#post_tags").autocomplete(['.$tags.'], {
        width: 320,
        max: 4,
        highlight: true,
        multiple: true,
        multipleSeparator: ", ",
        scroll: true,
        scrollHeight: 300
    });
</script>';

note: Now this is good if you only have a small number of tags, but if you have hundreds or thousands of tags then using an ajax solution is a must.

1
  • Could you expand on "once you've included all the JS libraries" a bit more please? I'm actually trying to create my first plugin that is a tag search form, and it should function exactly like the jquery autocomplete demo (jqueryui.com/autocomplete/#multiple) with multipe comma delimited values. Although I can get this to work fine in a standalone application, it doesn't work in a plugin. I'm not sure what library files or how they should be included in the plugin. Using WP 3.9
    – user658182
    Apr 18 '14 at 3:06
2

Look at the code for the tag box in wp-admin/includes/meta-boxes.php and the function tagBox in wp-admin/js/post.js. You may adapt or reuse these functions.

2
  • Dear toscho, what is the actual equivalent of 'post.dev.js' in 'wp-admin/js/'? I dont find this file in WP 3.5+. Thanks May 24 '13 at 15:05
  • @whitelettersandblankspaces It is just post.js now.
    – fuxia
    May 24 '13 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.