History
I got tired of trying to remember what the keypad codes were for the most common HTML codes available. But when I discovered the wide variety of codes available, being the completeness hack that I am I decided to implement as many of them as possible. See the Unicode Standard page listed below for more information.
Furthermore, I wanted to learn WordPress plugin design (having done MediaWiki plugins in the past) because I really like the WordPress platform and this seemed like a perfect tool not only to learn all of the various details of plugin design but also give something back to the WordPress community.
Therefore, after working, on and off, on this plugin for about two years, I finally began a concentrated effort over a couple of months to bring to publishable quality. Even then, it underwent significant modification as I better understood WordPress design principles and discovered better ways to code the plugin, plus learning XML construction and becoming acquainted with jQuery and SimpleXML functionality.
Right now, though, much as I’ve thought the same thing these past weeks only to find I was wrong, I feel I’ve done as much as I can with this plugin and now I can feel confident about releasing it to the world.
Operation
What the Unicode Character Keyboard does is add a widget to the Post and Page edit panels with a selectable collection of Unicode character sets as defined by the Unicode Consortium. This organization is a world-wide organization whose charter is to create specifications to define international character sets for all types of computing applications and situations. The widget displays a series of key images representing the contents of various character sets, and the character representations within the set can be clicked to send that character to the edit window.
The contents of this widget can be selected from a large number of defined character sets, ranging from several European and Eastern languages to a wide variety of dingbats, symbols, images and operators, even some oddities such as the Phaistos Disc and ancient Cuneiform characters and the Emoji pictographs (of which only the last of these are implemented at this time.) While large, the list of character sets included with this initial release is by no means a complete representation of the entire Unicode definition.
Administration

Selection is through an admin menu page (one of the things I learned through this experience was how to define menu pages and sub-pages) which allows a user to select the specific character sets, so that the edit widget only loaded the desired sets. Given the vast array of possible sets, it was only prudent to add some mechanism to customize and limit the list of character sets shown.
Management
There are four tabs on the management sub-page. These tabs allow the administrator to add or delete individual character sets, examine the error log to check for errors when uploading new character set files and search for a specific character within the given character sets.
Uploading File
The administrator may upload a new character set file through this tab. The character set file must be in the XML format as described in the Customize section. Errors in the file will be recorded and are visible in the Error Reporting tab.
Deleting File
This tab lists all character set files in the set library subdirectory. The administrator may select any of these files, with the exception of the Common file which is required in certain functions inside the plugin code, and delete them from the subdirectory.
Error Reporting
This tab returns the contents of the error log, which contains all error messages reported when uploading a new character set file.
Find Character
This tab allows the administrator to enter a specific character or the Unicode equivalent and which ever character set contains that character will be listed.
Display
It is also possible to see the contents of each and every character set through an admin menu page, which displays each character set just as it would appear in the edit widget. (And I customized the look of the character sets so they look like keys on a keyboard.) The following is how the Common character set appears.
As you can see, the character sets are broken down into contiguous subsets according to their contents, in this case Text, Punctuation, Quote Marks, Signs and Symbols and Mathematics, to make locating the desired character easier. Furthermore, when the cursor hovers over a character, a title box will be displayed showing the Unicode designation and a description of the character.
Customization
A series of reference pages have been included giving details about creating a customized character set definition file, which is an XML file. A sample XML file and its corresponding DTD file is included with the distribution. One such page lists a number of Unicode information references and recommended font files.
Defined Character Sets
Each of these character sets either represent a particular Unicode character set definition or are a collection of similar characters from across a number of character sets. The latter is particularly apt involving many of the Western language character sets.
Languages Sets supported
- French (accented characters and special symbols)
- German
- Greek
- Hirigana
- Katakana
- Ogham
- Runic (Futhark)
- Russian
- Spanish (accented characters and special symbols)
- Tifinagh
Symbols, Images and Dingbat Sets supported
- APL (A Programming Language: a programming language that uses many special characters)
- Alchemical
- Arrows
- Astrology and Astronomy
- Braille (all possible Braille characters and a Braille typewriter keyboard)
- Computers (including OCR characters)
- Currency (compilation of common currency symbols)
- Dingbats (ornamental characters)
- Drawing (block and line drawing characters)
- Emoji Pictographs (used in Japanese cell phones)
- Emoticons
- Games
- Latin Extended
- Letter Like
- Mathematics
- Punctuation
- Religious Symbols
- Roman Numerals
- Shapes
- Signs
- Small
- Spacing
- Subscripts
- Superscripts
- Symbols
- Technical
There is also a Common character set (see image above) which combines several commonly used Unicode characters such as left and right single and double quote marks, upper and lower case accented characters, commonly-used signs and symbols and mathematical symbols. It should be sufficient for most uses.
Download
The zip file can be downloaded here at the WordPress repository.
Development
The development process here was very organic: I had an idea about what I wanted but as I pursued it, further ideas were integrated into the overall design. Then, while doing the actual programming, I looked back at the installed (and rejected) plugins (and other resources) I make use of in my websites. I examined the best (and worst) features I saw and adopted the best (and eliminated the worst) for this plugin, including:
- adding settings and home page links in the plugin list description field. It is so annoying that some plugin developers make it difficult (if not almost impossible) to find the settings page: one even doesn’t list their settings page in the admin bar!
- putting alternating color bars on the table rows to distinguish between them
- making use of the help box
- adding references and supplemental information related to the core subject of the plugin
- using message boxes and adding the ability to close them without refreshing the page
- adding icons to the sub-menu entries
In fact, just about everything I learned about plugin writing I learned from first examining other plugins and then secondly checking the WordPress function descriptions.
Notes
The characters from the header image are as follows:
- The first line is Conway’s Game of Life programmed in the APL language.
- The second line are the astrological symbols for the 12 houses of the Zodiac.
- The third line are the numbers 1 to 4 in Japanese.
The header image is created using the Symbola font.


