Skip to main content

Adding Custom Post Type in Wordpress

WordPress is no more a blogging platform. People always tried to use it as CMS by applying their own techniques and ways. Wordpress kept on adding new feature in this direction in their releases. One of the most important addition to wordpress in this direction is Custom Post Types. One of the major requirement when using wordpress as a CMS.

For example, say you are creating a Travel website listing restaurants & hotels.
You would need 2 post types.
  1. Restaurant
  2. Hotel
Ofcourse people used to do this by using categories and all. But that was not a good solution when developing for a client.

Now you could add custom post type by adding this small piece of code to your functions.php file within your theme folder:


//Add restaurant
function post_type_restaurant() { 
 
register_post_type( 'restaurant',  array( 
                'label' => __('Restaurant'), 
                'public' => true, 
                'show_ui' => true ) ); 
 
//registers a taxonomy for this post type
register_taxonomy_for_object_type('post_tag', 'restaurant');

} 
add_action('init', 'post_type_restaurant'); 

Here is what the above code in your function.php do:


It's that simple. Now if your curios on how to show  post on your home there is a nice write up by Justin Tadlock in his blog.  
http://justintadlock.com/archives/2010/02/02/showing-custom-post-types-on-your-home-blog-page

For more information on Custom Post Types:
Follow this nice post at WpEngineer: here
Official wordpress documentation: here


Hope this post helped you understand how to use custom post types. For any additions or queries please do use the comment box below.

Comments

Popular posts from this blog

Add new avatars to your wordpress and Say Good-Bye to Mystery Man

If you are like most of the other wordpress developers out there, then you might also had this problem with the default mystery man in wordpress. You also would wanted to change the deafualt avatar of your comments with something nice. It's not that hard. It's infact very easy. Just add this to your functions.php file within your theme folder. /** * add a default-gravatar to options */ if ( !function_exists('fb_addgravatar') ) { function fb_addgravatar( $avatar_defaults ) { $myavatar = get_bloginfo('template_directory') . '/images/avatar.gif'; $avatar_defaults[$myavatar] = 'people'; $myavatar2 = get_bloginfo('template_directory') . '/images/myavatar.png'; $avatar_defaults[$myavatar2] = 'wpengineer.com'; return $avatar_defaults; } add_filter( 'avatar_defaults', 'fb_addgravatar' ); } Why this? When you can have this! Happy coding! For any queries or suggestions give a comment below!

Using WordPress Comment Meta

Comment meta is such a wonderful addition to WordPress that allow us to extend the native comment form with additional fields. This comes very handy for the one's who is trying to create review sites etc. Unfortunately there’s no documentation added on the WP codex. For the purpose of demonstration we will be doing: add a check box to the comments form. show in the WordPress comments admin whether or not the checkbox was selected. indicate in the comment notification email whether or not the checkbox was selected. Adding the checkbox to the comments form is easy. To add the checkbox to the comments form open up your themes comments.php file and paste this into the area where you need it: <label><input id="publishc" name="publishc" tabindex="90" type="checkbox" value="this is the value I want to capture" /> Whatever sentence that you want commenters to use the checkbox for</label> Now that the checkbox

Inserting post image programmatically to worpress

We have discussed how posts can be added programmatically before. This comes very much handy when you have to make custom scripts to import content from some cms especially custom ones. But the thing often missed is how to add post image for a particular post programmatically. This is something that is always missed. There very less resources online explaining this. But this is a very straight forward thing and very easy to do. There is this wonderful function that does this beautifully. media_sideload_image($url,$post_id,$description); The first argument is the remote url of the image you want to download. The second argument is the post id of the post to which you want to attach the image. The third argument is optional, but will be a description if included. I'd suggest finding a way to throttle the downloads so that you don't keep timing out, such as limiting the number of images it pulls in per load and setting the importer to refresh itself between dow