You can select multiple images, posts, or media items to be stored in a single field making it easy for you to store a gallery of images or long lists of values. This plugin also lets you export and import your content definitions, making it easy to ensure a similar structure between multiple sites.

After activating this plugin, you can create custom content types (post types) by using the configuration page for this plugin. Click the "Custom Content Types" link under the Settings menu or click this plugin's "Settings" shortcut link in on the Plugin administration page.

You can list all defined content types (a.k.a. post-types) by clicking on the "Custom Content Types" menu item.

There are a lot of options available when you create a new content type, only some of them are pictured.

You can define many different types of custom fields by clicking on the "Custom Content Types --> Custom Fields" link.

Clicking the "activate" link for any content type will cause its fields to be standardized and it will show up in the administration menus.

Once you have defined custom fields and associated them with one or more content types, those custom fields will show up when you create or edit a new post.

This plugin uses the standard installation procedure: install the plugin's folder inside of wp-content/plugins (make sure the folder is named custom-content-type-manager).

Here is a typical use-case verbosely for the record:

Install this plugin using the traditional WordPress plugin installation, or upload this plugin's folder to the /wp-content/plugins/ directory (ensure that the directory is named custom-content-type-manager).

Activate the plugin through the 'Plugins' menu in the WordPress manager.

Upon activation you can adjust the plugin settings by clicking the newly created "Custom Content Types" menu item, or click this plugin's "Settings" link on the Plugins page.

After clicking the Settings link, you will see a list of content types -- there are two built-in types listed: post and page. To test this plugin, try adding a new content type named "movie" by clicking the "Add Custom Content Type" button at the top of the page.

There are a lot of options when setting up a new content type, but all the necessary ones are shown on the first page. Pay attention to the "Name", "Show Admin User Interface", and "Public" settings. "Show Admin User Interface" must be checked in order for you to be able to create or edit new instances of your custom content type.

Save the new content by clicking the "Create New Content Type" button.

Your content type should now be listed under on the main Custom Content Types Manager settings page. Activate your new content type by clicking the blue "Activate" link.

Once you have activated the content type, you should see a new menu item in the left-hand admin menu. E.g. "Movies" in our example.

Try adding some custom fields to your new content type by clicking on the "Manage Custom Fields" link on the settings page.

You can add as many custom fields as you want by clicking the "Add Custom Field" button at the top of the page, e.g. try adding a "plot_summary" field using a "textarea" input type, and try adding a "rating" dropdown.

When you are finished configuring your custom fields, click the "Save Changes" button.

Now try adding a new instance of your content type ("Movies" in this example). Click the link in the left-hand admin menu to add a movie.

Your new "Movie" post will have the custom fields you defined.

If you have added any media custom fields, be sure to upload some images using the WordPress "Media" menu in the left-hand menu.

Please note: if you are upgrading from version 0.8.7 or before, you must completely uninstall and remove the previous version! This will not delete any of your content, but you should take some notes about the exact names of your content types before doing this. Sorry, I know it's a pain, but I had to correct for limitations in the data structure. See this Wiki page for more information.

Fixed glitch in Javascript element counter that screwed up dropdown menu creation: due to this bug, you could only add a dropbox to the first element because the wrapper div's id was fixed statically as the same id, so adding a dropdown menu always wrote the new HTML to that same div (inside the first custom field).

Control buttons now at top and bottom of manage custom fields.

Links to bug tracking / wiki for this project.

Some basic HTML cleanup.

Moved some files around for better organization.

=0.8.2=
* WordPress 3.0.4 fixed some bugs that affected the functionality of this plugin: now you CAN add custom content posts to WordPress menus.
* WordPress has not recognized the updates to this plugin (apparently due to a glitch), so currently the only way to get the most recent version of this is to check it out via SVN.

0.8.1

Fixes problem saving posts. The problem had to do with wp-nonces and the admin referrer was being checked, but not generated, so the check failed. Oops.

0.8.0

Requirements

WordPress 3.3 or greater.

PHP 5.2.6 or greater

MySQL 4.1.2 or greater

These requirements are tested during WordPress initialization; the plugin will not load if these requirements are not met. Error messaging will fail if the user is using a version of WordPress older than version 2.0.11.

About

This plugin was written in part for the book WordPress 3 Plugin Development Essentials published by Packt. It was inspired by the Custom-Post Type UI plugin written by Brad Williams. The Custom-Post Type UI plugin offers some of the same features, but I felt that its architecture was flawed: it stores data as taxonomical terms, which is conceptually awkward at a development level, and more importantly, it limits the each custom field to 200 characters of data, making it impossible to store certain types of custom content.

On the surface, this plugin is similar, but this plugin "correctly" stores custom field data as post meta data, which allows allows for different input types (e.g. checkboxes, dropdowns, and images) and the custom fields offered by this plugin can support data of virtually unlimited size. For example, you could define a WYSIWYG custom field for your custom content type and it could hold many pages of data.

The architecture for this plugin was also inspired by MODX. WordPress is making progress as a viable content management system, but even after the thousands of lines of code in this plugin, it still does not support all the features in a system like MODx. WordPress templates are particularly limited by comparison. WordPress is great system for many scenarios, but if you're feeling that WordPress is starting to tear apart at the seams when it comes to custom content, it may be worth a look at another plugin or some of the other available systems.

Future TO-DO

Please see the Issues page for the most current list of on-going feature development.

If you are eager to see a particular feature implemented in a future release, please share your feedback at the official Issues page

And if you REALLY want some of these features implemented, you can hire me to complete portions of your project or make a donation. Many of the surges in development in this plugin were instigated by projects that required this plugin's use.