The native WordPress functions [`wp_get_object_taxonomies`](http://codex.wordpress.org/Function_Reference/get_object_taxonomies), [`wp_get_object_terms`](http://codex.wordpress.org/Function_Reference/wp_get_object_terms), and [`get_the_term_list`](http://codex.wordpress.org/Function_Reference/get_the_term_list) can be used to create a generic function to list of all taxonomies and terms of any custom post type.
The WordPress Categories Widget currently only handles the `category` taxonomy. I’ve modified it to allow the user to select a taxonomy, and tied in the Tag Cloud Widget code to give the user the choice of display formats: list, dropdown, and cloud. Multiple instances are possible, providing the user with an easy method for displaying links to user-built taxonomy terms.
By default or design, the WordPress function `get_calendar()`[^1] does not handle post types other than `post`. I’ve updated it as the standalone function `ucc_get_calendar()` to allow it to accept a `$post_types` array; the included filter function `ucc_get_calendar_filter()` will allow for seamless integration via `functions.php` without requiring additional editing of Theme templates. (Note that the filter will also apply to the Calendar Widget’s output.)
Again with the custom post type extensions. This function lets the native WordPress `wp_get_archives()` [^1] [^2] know about public custom post types; just add it to the `functions.php` of your theme. Of note: the builtin `link` post type can be included at the `array_merge()` point; I just had no use for it.
After I had created several custom taxonomies and post types, adding more by directly calling the `register_taxonomy`[^1] and `register_post_type`[^2] functions seemed like a huge waste of space. The following functions create a shortcut for registering taxonomies and custom post types in WordPress; just choose whether you’d like the taxonomy to resemble Post Tags or Categories when calling the function `ucc_register_taxonomy`, and specify an array of taxonomies for `ucc_register_post_type`.
I love the [Post Editor Buttons](http://wordpress.org/extend/plugins/post-editor-buttons/) plugin for WordPress by [Oren Yomtov](http://orenyomtov.com/). It makes it easy to extend the Post Editor without needing to resort to hacking `quicktags.js`.
One tiny drawback: sometimes I have character entity mismatches. Quicktags for special characters, such as ‘é’ , ‘–‘ , ‘…’, work until the next time I add a quicktag via the PEB interface, when they are returned as ‘Ã©’, ‘â��’, ‘â�¦’.
WordPress 3.0 adds custom post types to the Dashboard’s main navigation sidebar, but I wanted a quick overview of my custom post types and taxonomies in the Right Now widget, just like it currently has for Posts, Pages, Categories, and Tags. I used WordPress’s internal dashboard code to create similar entries for custom post types and taxonomies.
I wrote this function to allow me to use custom post types in my blog without having to fine-tune each template for their inclusion. It checks the query to see if `post_type` is set; if it is not set (as it would be on a specific post type’s archive page), it includes all public post types.
I’ve been playing with custom post types and taxonomies for organizing all things not post and I wanted to customize my admin edit screens for each new custom post type. Navjot Singh’s tutorial[^1] and this thread on Theme Hybrid’s forums[^2] both provide an introduction to adding taxonomy columns. However, I am lazy and don’t like hardcoding in variables each time I add a custom post type or new taxonomy.
The following set of functions grabs a list of available taxonomies for a given `post_type` and automatically adds columns to the appropriate admin pages, without the need to hardcode each post type to taxonomy relationships.
I use [FeedWordPress](http://feedwordpress.radgeek.com/) to scrape my personal RSS feeds on various services into my WordPress blog as individual posts. Before the advent of [custom post types](http://justintadlock.com/archives/2010/04/29/custom-post-types-in-wordpress), I used categories and tags to separate these scraped posts from regular blog posts. However, it now seems more logical to add some of these posts as a custom post type.