Display Custom Post Types in WordPress – 4 Methods

Display Custom Post Types in WordPress - 4 Methods

WordPress allows you to create custom post types beyond the default posts and pages. Here are four ways to display custom post types on your site:

  1. Using the Default Archive Template
    • Easy to implement by creating a new file named archive-{post-type}.php
    • Limited customization options
  2. Creating Custom Templates
    • Full control over design by creating custom archive-{post-type}.php and single-{post-type}.php files
    • Requires coding knowledge and time to implement
  3. Using WP_Query
    • Highly customizable by querying specific custom post types with advanced filters
    • Requires advanced coding and can impact site performance
  4. Using a Plugin
    • Easy to use with plugins like Custom Post Type UI, Toolset Types, Pods, or Meta Box
    • May have a cost and depends on plugin quality

Each method has its pros and cons, so choose the one that best fits your project’s needs and customization level.

Quick Comparison

Method Ease of Use Customization Coding Required
Default Archive Template Easy Limited Basic
Custom Templates Moderate Full Advanced
WP_Query Difficult Advanced Advanced
Plugin Easy Varies None

1. Using the Default Archive Template

Step-by-Step Guide

To display custom post types using the default archive template, follow these steps:

  1. Create a Custom Post Type: Ensure you have created a custom post type, e.g., "Podcast," and published at least one article under it.
  2. Locate archive.php: Go to your WordPress theme’s folder and find the archive.php file. This file serves as the default archive template.
  3. Create a New File: Create a new file named archive-{post-type}.php, replacing {post-type} with your custom post type’s slug (e.g., archive-podcast.php).
  4. Copy and Paste: Copy the contents of the archive.php file and paste it into your new file.
  5. Customize: Modify the new file to display your custom post type entries in the desired layout. Use the default archive.php file as a starting point and adjust it as needed.

Customization Tips

To customize the default archive template, you can:

  • Change the layout and design to match your site’s theme.
  • Add or remove elements like the post title, content, or metadata.
  • Use WordPress functions like get_template_part() to include custom templates or components.

Example Code

Here’s an example of how you can modify the archive-podcast.php file to display a list of podcast episodes with their titles and descriptions:

<?php
while ( have_posts() ) : the_post();
   ?>
    <h2><?php the_title();?></h2>
    <p><?php the_excerpt();?></p>
    <?php
endwhile;
?>

Pros and Cons

Using the default archive template has its advantages and disadvantages:

Pros Cons
Easy to implement Limited customization options
Uses existing WordPress files Requires theme compatibility

Comparison Table

The default archive template is a convenient option for displaying custom post types, but it may not offer the level of customization you need. Consider the pros and cons before deciding on the best approach for your project.

2. Creating Custom Templates

Custom Archive Template

To create a custom archive template for your custom post type, follow these steps:

  1. Duplicate the archive.php file and rename it to archive-{post-type}.php, replacing {post-type} with your custom post type’s slug (e.g., archive-books.php).
  2. Customize the new file to display your custom post type entries in the desired layout. You can use the default archive.php file as a starting point and adjust it as needed.

Here’s an example of how you can modify the archive-books.php file to display a list of books with their titles and authors:

<?php
while ( have_posts() ) : the_post();
  ?>
    <h2><?php the_title();?></h2>
    <p>By <?php the_author();?></p>
    <?php
endwhile;
?>

Custom Single Post Template

To create a custom single post template for your custom post type, follow these steps:

  1. Duplicate the single.php file and rename it to single-{post-type}.php, replacing {post-type} with your custom post type’s slug (e.g., single-books.php).
  2. Customize the new file to display your custom post type entries in the desired layout. You can use the default single.php file as a starting point and adjust it as needed.

Here’s an example of how you can modify the single-books.php file to display a book’s details, including title, author, and content:

<?php
  ?>
    <h1><?php the_title();?></h1>
    <p>By <?php the_author();?></p>
    <div><?php the_content();?></div>
    <?php
?>

Customization Tips

When creating custom templates, you can:

  • Change the layout and design to match your site’s theme.
  • Add or remove elements like the post title, content, or metadata.
  • Use WordPress functions like get_template_part() to include custom templates or components.

Pros and Cons

Creating custom templates has its advantages and disadvantages:

Pros Cons
Full control over design Requires coding knowledge
Enhanced functionality Time-consuming to implement

Comparison Table

Creating custom templates offers a high degree of customization, but it may require more effort and coding knowledge. Consider the pros and cons before deciding on the best approach for your project.

sbb-itb-77ae9a4

3. Using WP_Query for Custom Post Types

WP_Query

Setting Up WP_Query

To display custom post types using WP_Query, set up a few parameters. The key ones are post_type, posts_per_page, and orderby. Here’s an example:

$args = array(
    'post_type' => 'superhero',
    'posts_per_page' => 3,
    'orderby' => 'title',
    'order' => 'ASC'
);
$the_query = new WP_Query( $args );

This code fetches 3 superhero custom post types, ordered by title in ascending order.

Displaying CPTs on Custom Pages

WP_Query is useful for displaying custom post types on custom pages. For example, you can show a list of related custom post types on a single post page:

$args = array(
    'post_type' => 'related_books',
    'posts_per_page' => 5,
    'orderby' => 'title',
    'order' => 'ASC'
);
$related_books_query = new WP_Query( $args );

if ( $related_books_query->have_posts() ) {
    while ( $related_books_query->have_posts() ) {
        $related_books_query->the_post();
       ?>
        <h2><?php the_title();?></h2>
        <?php
    }
    wp_reset_postdata();
}

This code fetches 5 related book custom post types, ordered by title, and displays their titles.

Advanced Customization

WP_Query allows for advanced customization, such as filtering by taxonomies, custom fields, and pagination. For example, you can filter custom post types by taxonomy terms:

$args = array(
    'post_type' => 'testimonials',
    'posts_per_page' => 5,
    'tax_query' => array(
        array(
            'taxonomy' => 'testimonial_service',
            'field'    => 'slug',
            'terms'    => 'diving'
        )
    )
);
$testimonials_query = new WP_Query( $args );

This code fetches 5 testimonial custom post types that belong to the "diving" taxonomy term.

Pros and Cons

Using WP_Query to display custom post types has its advantages and disadvantages:

Pros Cons
Highly customizable Requires advanced coding
Can be used site-wide Can impact site performance

Comparison Table

Here’s a summary of the pros and cons of using WP_Query:

Pros Cons
Highly customizable Requires advanced coding
Can be used site-wide Can impact site performance

4. Using a Plugin

Plugins can make displaying custom post types easier. Here are some recommended ones:

  • Custom Post Type UI: Easy to create and manage custom post types and taxonomies.
  • Toolset Types: Manages custom post types and fields for complex data structures.
  • Pods – Custom Content Types and Fields: Flexible for creating custom post types, fields, and relationships.
  • Meta Box: Simple and performance-focused toolkit for custom post types and fields.

Plugin Setup Guide

To start with a plugin:

  1. Install and activate the plugin via the WordPress dashboard or upload it manually.
  2. Go to the plugin’s settings page and configure the custom post type settings.
  3. Create a new custom post type or edit an existing one to set up display options.

Plugin Features

These plugins offer various features:

  • Searchable tables and filters
  • Display settings for layout and design
  • Support for custom fields and taxonomies
  • Integration with other plugins and themes

Pros and Cons

Using a plugin has its advantages and disadvantages:

Pros Cons
Easy to use May have a cost
Rich feature sets Depends on plugin quality

Comparison Table

Here’s a summary of the pros and cons of using plugins:

Pros Cons
Easy to use May have a cost
Rich feature sets Depends on plugin quality

Conclusion

Key Takeaways

In this article, we covered four ways to display custom post types in WordPress. We discussed the benefits of using custom post types, such as better organization and flexibility. The methods included:

  1. Using the default archive template
  2. Creating custom templates
  3. Using WP_Query
  4. Utilizing plugins

Further Resources

For more information on custom post types and how to display them in WordPress, check out these resources:

FAQs

How do I show post types in WordPress?

WordPress

To display custom post types in WordPress, you can use one of the four methods discussed in this article. Here’s a brief overview of each method:

  • Using the default archive template: WordPress provides a default archive template that can be used to display custom post types. You can access this template by creating a new file named archive-{post-type}.php in your theme’s folder.
  • Creating custom templates: You can create custom templates for your custom post types by creating a new file named single-{post-type}.php or archive-{post-type}.php in your theme’s folder.
  • Using WP_Query: You can use the WP_Query class to display custom post types on a custom page. This method requires some coding knowledge, but it provides more flexibility and control over the display of your custom post types.
  • Using a plugin: You can use a plugin like Custom Post Type UI or Toolset Types to display custom post types in WordPress. These plugins provide a user-friendly interface for creating and managing custom post types.

Choose the method that best suits your needs and follow the instructions provided in the corresponding section of this article.

Related posts

More WorDPRESS Tips, tutorials and Guides