Quick Guide: Creating Custom Post Types in WordPress

Introduction to Custom Post Types in WordPress

Custom post types are one of the most powerful features of WordPress. They allow website developers and administrators to create different types of content to suit the specific needs of their project. This is especially useful for sites that require more than just standard posts and pages. In this guide, we will explore how to create custom post types effectively.

What are Custom Publication Types?

Custom post types are content entities that can be used to organize and display information more efficiently. By default, WordPress includes several post types such as publications, pages y attachments. However, you can create additional types, such as portfolios, testimonials o products according to the needs of your site.

Examples of Custom Publication Types

Here are some examples of custom publication types you might consider:

  • Portfolio: Ideal for displaying creative work.
  • Testimonials: To publish customer reviews.
  • Products: Especially useful for e-commerce sites.

How to Create Custom Publication Types

To create a custom post type in WordPress, you can do so by using the function register_post_type() in your file functions.php. Here is a basic example of how to set up a custom publication type.

Code to Register a Custom Publication Type

Insert the following code in the file functions.php of your active topic:

function create_portfolio_publication_type() {
    $args = array(
        'label' => 'Portfolio',
        'public' => true,
        'has_archive' => true,
        'supports' => array('title', 'editor', 'thumbnail'),
        'rewrite' => array('slug' => 'portfolio'),
    );
    register_post_type('portfolio', $args);
}
add_action('init', 'create_portfolio_post_type');

This code creates a new type of publication called "Portfolio", which allows the use of titles, editors and thumbnails.

Quick Guide: Creating Custom Post Types in WordPress
Download our web maintenance guide Free of charge!
Free guide for freelancers and small businesses that want to avoid surprises and improve their web performance.

Setting Options for Publication Type

When registering a custom post type, you can customize several options. These options determine how your post type will behave in the administration panel and on the front-end of your site.

Common Options

Some of the most commonly used options in the argument array are described below:

  • label: The name displayed in the administration panel.
  • public: Defines whether the type of publication is publicly accessible.
  • has_archive: Allows the publication type to have its own archive page.
  • supports: Define the supported features (title, editor, thumbnail, etc.).

Advanced Example of a Custom Publication Type

For those looking for a more advanced approach, you can add additional features such as custom taxonomies, capabilities and more. Here is a more elaborate example:

function create_publication_type_event() {
    $args = array(
        'label' => 'Events',
        'public' => true,
        'has_archive' => true,
        'supports' => array('title', 'editor', 'thumbnail', 'custom-fields'),
        'taxonomies' => array('event_category'),
        'rewrite' => array('slug' => 'events'),
    );
    register_post_type('event', $args);
}
add_action('init', 'create_post_event_type');

In this example, we have added support for custom fields and associated a taxonomy called "event_category".

Display of Custom Publication Types in the Front-End

Once you have created your custom post type, you will want to display it on the front-end of your site. To do this, you can either create a custom template for the post type or use the default archive template.

Creating a Custom Template

To create a template specific to your type of publication, you must name the file as single-{post_type}.php. For example, if your publication type is called "portfolio", you would create a file named single-portfolio.php. In this file, you can customize how each content item is displayed.

Conclusion

Creating custom post types in WordPress allows you to tailor your site to your specific needs. With a little coding and customization, you can enrich the user experience and manage your content more effectively.