In this article, we will take a look into getting different types of custom post type data and display them in the post template.
But before moving further, let’s assume I have a custom post type Events and its slug name is ‘events’. Now we will use this case for all the examples further in the article.
Get & Display Custom Post Type Data in WordPress
In general, To get the posts from a custom post type we use WP_Query with an array of arguments, and then use WordPress loop to get the desired results.
The code snippet given below is the standard WordPress loop to get data from the custom post type. You can use this along with the examples to get desired custom post type data.
<?php $args = array( 'post_type' => 'events', 'posts_per_page' => 5, ); $query = new WP_Query($args); if($query->have_posts()): while($query->have_posts()): $query->the_post(); // Add example code here to get desired results. endwhile; /* Restore original Post Data */ wp_reset_postdata(); endif; ?>
Custom Post Type ID
To get the custom post type ID, you can use get_the_ID() function. this will return the ID of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo get_the_ID(); // Next standard WordPress Loop code
Custom Post Type Title
To get the custom post type title, you can use get_the_title() function. this will return the title of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo get_the_title(); // Next standard WordPress Loop code
Custom Post Type Permalink | URL
To get the custom post type permalink or URL, you can use get_the_permalink() function. this will return the URL of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo get_the_permalink(); // Next standard WordPress Loop code
Custom Post Type Excerpt
To get the custom post type excerpt, you can use get_the_excerpt() function. this will return the excerpt of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo get_the_excerpt(); // Next standard WordPress Loop code
Custom Post Type Content
To get the custom post type content, you can use get_the_content() function. this will return the content of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo get_the_content(); // Next standard WordPress Loop code
Custom Post Type Featured Image
To get the custom post type featured image, you can use get_the_post_thumbnail_url() function. this will return the featured image URL of current custom post type item in WordPress loop.
// Previous standard WordPress Loop code echo '<img src="'. get_the_post_thumbnail_url().'"/>'; // Next standard WordPress Loop code
Custom Post Type Name
To get the custom post type name, you can use get_post_type() function. this will return the name of current custom post type.
// Previous standard WordPress Loop code echo get_post_type(); // Next standard WordPress Loop code
Custom Post Type Label Name
To get the custom post type label name, you can use get_post_type_object() function by passing the custom post type name in it.
This will return the post object of current custom post type, and then you can use labels->singular_name and labels->name along with post object to get the label name of custom post type.
// Previous standard WordPress Loop code // Get post type object $post_type_obj = get_post_type_object( get_post_type() ); // Displays singular label name of custom post type: Event echo $post_type_obj->labels->singular_name; // Displays plural label name of custom post type: Events echo $post_type_obj->labels->name; // Next standard WordPress Loop code
Custom Post Type Slug
To get the custom post type slug, you can use get_post_type_object() function by passing the custom post type name in it. this will return the post object of your custom post type.
Then you can use rewrite[‘slug’] along with post object to get the custom post type slug.
// Previous standard WordPress Loop code // Get post type object $post_type_obj = get_post_type_object( get_post_type() ); // Displays custom post type slug echo $post_type_obj->rewrite['slug']; // Next standard WordPress Loop code
Get & Display List of All Custom Post Type Posts
To get the list of all posts from a custom post type we use WP_Query with an array of arguments and WordPress loop.
To get all posts, make sure you set posts_per_page to -1. Otherwise, it will display the default number of posts set to be displayed under Settings >> Reading.
<?php $args = array( 'post_type' => 'events', 'posts_per_page' => -1, ); $query = new WP_Query($args); if($query->have_posts()): while($query->have_posts()): $query->the_post(); echo '<ul>'; echo '<li><a href="'.get_the_permalink().'">'.get_the_title().'</a></li>'; echo '</ul>'; endwhile; /* Restore original Post Data */ wp_reset_postdata(); endif; ?>