Note: Spam Destroyer apparently does not work in conjunction with the Jetpack plugin. That plugin has a nasty way of handling it's commenting system which requires you to connect to an external service and will not work if your installation is not connected to the internet (which is the case for all my development sites) and as such this problem will not be fixed any time soon. If the Jetpack team fix these major problems I will happily make the plugin compatible with it, but in the mean time I suggest avoiding the Jetpack plugin at all costs.
it is better if you prefix your identifier with a short namespace that identifies your plugin, theme or website that implements the custom post type.
For example:
acme_product or aw_product for products post type used by a hypothetical ACMEWidgets.com website
Namespacing your custom post type identifier will not guarantee against conflicts but will certainly minimize their likelihood.
Do pay close attention to not having your custom post type identifier exceed 20 characters though, as the post_type column in the database is currently a VARCHAR field of that length.
When you namespace a custom post type identifier and still want to use a clean URL structure, you need to set the rewrite argument of the register_post_type() function. For example, assuming the ACME Widgets example from above:
'rewrite' => array('slug' => 'products'),
Note: In some cases, the permalink structure must be updated in order for the new template files to be accessed when viewing posts of a custom post type.
single posts of a custom post type will use single-{post_type}.php
and their archives will use archive-{post_type}.php
where {post_type} is the $post_type argument of the register_post_type() function.
In any template file of the WordPress theme system, you can also create new queries to display posts from a specific post type. This is done via the post_type argument of the WP_Query object.