Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
Coupe WPB
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Outil de personnalisation des types de publication dans WordPress

Note éditoriale : Nous percevons une commission sur les liens des partenaires sur WPBeginner. Les commissions n'affectent pas les opinions ou les évaluations de nos rédacteurs. En savoir plus sur Processus éditorial.

Voulez-vous apprendre à créer facilement des types de publication personnalisés dans WordPress ?

Les types de publication personnalisés vous permettent d’aller au-delà des posts et des pages et de créer différents types de contenu pour votre site. Ils transforment votre site WordPress d’une plateforme de blog en un puissant système de gestion de contenu(CMS).

Dans cet article, nous allons vous afficher comment créer facilement des types de publication personnalisés dans WordPress.

How to Create Custom Post Types in WordPress

Qu’est-ce que le Type de publication personnalisé dans WordPress ?

Sur votre site WordPress, les types de publication sont utilisés pour aider à distinguer les différents types de contenu dans WordPress. Les publications et les pages sont toutes deux des types de publications, mais elles sont conçues pour répondre à des besoins différents.

WordPress est livré avec quelques types de publication différents par défaut :

  • Publication
  • Page
  • Fichier joint
  • Révision
  • Menu de navigation

Vous pouvez également créer vos propres types de publication, appelés types de publication personnalisés. Ceux-ci sont utiles pour créer du contenu dont le format diffère de celui d’une publication ou d’une page standard.

Par exemple, si vous gérez un site d’Avis sur les films, vous voudrez probablement créer un type de publication pour les Avis sur les films. Vous pouvez également créer des types de publication personnalisés pour les portfolios, les témoignages et les produits.

Sur WPBeginner, nous utilisons des types de publication personnalisés pour nos sections Deals et Glossary afin de les séparer de nos articles de blog quotidiens. Cela nous aide à mieux organiser le contenu de notre site.

Les types de publication personnalisés peuvent avoir différents champs personnalisés et leur propre structure de catégories personnalisées.

De nombreuses extensions WordPress populaires utilisent des types de publication personnalisés pour stocker des données sur votre site WordPress. Voici quelques extensions qui utilisent des types de publications personnalisés :

  • WooCommerce ajoute un type de publication ‘product’ à votre stock en ligne
  • WPForms crée un type de publication ‘wpforms’ pour stocker tous vos formulaires.
  • MemberPress ajoute un type de publication personnalisé ‘memberpressproduct’.

Tutoriel vidéo

Subscribe to WPBeginner

Si vous préférez des instructions écrites, continuez à lire.

Dois-je créer des types de publication personnalisés ?

Avant de commencer à créer des types de publication personnalisés sur votre site WordPress, il est important d’évaluer vos besoins. Bien souvent, vous pouvez obtenir les mêmes résultats avec une publication ou une page normale.

Si vous n’êtes pas sûr que votre site ait besoin de types de publication personnalisés, alors consultez notre guide pour savoir quand vous avez besoin d’un type de publication personnalisé ou d’une taxonomie dans WordPress.

Ceci étant dit, voyons comment créer facilement des types de publication personnalisés dans WordPress pour votre propre usage.

Nous vous présenterons deux méthodes, et nous aborderons également quelques façons d’afficher les types de publication personnalisés sur votre site WordPress.

Créer un type de publication personnalisé manuellement à l’aide de WPCode

Créer un type de publication personnalisé nécessite d’ajouter du code au fichier functions.php de votre thème. Normalement, nous ne recommandons cette opération qu’aux utilisateurs/utilisatrices avancés, car la moindre erreur peut casser votre site. De plus, si vous mettez à jour votre thème, alors le code serait effacé.

Cependant, nous utiliserons WPCode, le moyen le plus simple et le plus sûr pour quiconque d’ajouter du code personnalisé à votre site WordPress.

Avec WPCode, vous pouvez ajouter des extraits personnalisés, ainsi qu’activer de nombreuses fonctionnalités à partir de sa bibliothèque de code intégrée et préconfigurée qui peut remplacer de nombreuses extensions dédiées ou à usage unique que vous pourriez avoir installées.

Tout d’abord, vous devrez installer et activer l’extension gratuite WPCode. Pour des instructions détaillées, consultez notre guide étape par étape sur l’installation d’une extension WordPress.

Une fois activé, naviguez vers  » Code Snippets «  Add Snippet dans votre Tableau de bord WordPress. Passez votre souris sur  » Ajouter votre code personnalisé (nouvel extrait) « , puis cliquez sur  » Utiliser l’extrait « .

Add custom code in WPCode with new snippet

Vous accédez ensuite à l’écran « Créer un extrait personnalisé ».

Vous pouvez maintenant donner un titre à votre extrait de code et permuter le commutateur sur « Actif ».

Creating a custom code snippet using WPCode

Après cela, il suffit de coller le code suivant dans la zone de  » Prévisualisation du code « . Ce code crée un type de publication personnalisé de base appelé « Films » qui apparaîtra dans votre colonne latérale d’administration, et il fonctionnera avec n’importe quel thème.

// Our custom post type function
function create_posttype() {
 
    register_post_type( 'movies',
    // CPT Options
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'movies'),
            'show_in_rest' => true,
 
        )
    );
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );

Si vous souhaitez simplement un type de publication personnalisé de base, il vous suffit de remplacer les films et Movies par votre propre slug et nom de CPT et de cliquer sur le bouton « Mettre à jour ».

Toutefois, si vous souhaitez disposer d’encore plus d’options pour votre type de publication personnalisé, utilisez le code suivant au lieu du code ci-dessus.

Le code ci-dessous ajoute de nombreuses autres options au type de publication personnalisé « Films », telles que le support des révisions, des images mises en avant, des champs personnalisés, ainsi que l’association du type de publication personnalisé à une taxonomie personnalisée appelée « genres ».

Note : Ne combinez pas ces deux extraits ou WordPress vous donnera une erreur parce que les deux extraits inscrivent le même type de publication personnalisé. Nous vous recommandons de créer un tout nouvel extrait en utilisant WPCode pour chaque type de publication supplémentaire que vous souhaitez inscrire.

/*
* Creating a function to create our CPT
*/
 
function custom_post_type() {
 
// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Movies', 'Post Type General Name', 'twentytwentyone' ),
        'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentytwentyone' ),
        'menu_name'           => __( 'Movies', 'twentytwentyone' ),
        'parent_item_colon'   => __( 'Parent Movie', 'twentytwentyone' ),
        'all_items'           => __( 'All Movies', 'twentytwentyone' ),
        'view_item'           => __( 'View Movie', 'twentytwentyone' ),
        'add_new_item'        => __( 'Add New Movie', 'twentytwentyone' ),
        'add_new'             => __( 'Add New', 'twentytwentyone' ),
        'edit_item'           => __( 'Edit Movie', 'twentytwentyone' ),
        'update_item'         => __( 'Update Movie', 'twentytwentyone' ),
        'search_items'        => __( 'Search Movie', 'twentytwentyone' ),
        'not_found'           => __( 'Not Found', 'twentytwentyone' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentytwentyone' ),
    );
     
// Set other options for Custom Post Type
     
    $args = array(
        'label'               => __( 'movies', 'twentytwentyone' ),
        'description'         => __( 'Movie news and reviews', 'twentytwentyone' ),
        'labels'              => $labels,
        // Features this CPT supports in Post Editor
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        // You can associate this CPT with a taxonomy or custom taxonomy. 
        'taxonomies'          => array( 'genres' ),
        /* A hierarchical CPT is like Pages and can have
        * Parent and child items. A non-hierarchical CPT
        * is like Posts.
        */ 
        'hierarchical'        => false,
        'public'              => true,
        'show_ui'             => true,
        'show_in_menu'        => true,
        'show_in_nav_menus'   => true,
        'show_in_admin_bar'   => true,
        'menu_position'       => 5,
        'can_export'          => true,
        'has_archive'         => true,
        'exclude_from_search' => false,
        'publicly_queryable'  => true,
        'capability_type'     => 'post',
        'show_in_rest' => true,
 
    );
     
    // Registering your Custom Post Type
    register_post_type( 'movies', $args );
 
}
 
/* Hook into the 'init' action so that the function
* Containing our post type registration is not 
* unnecessarily executed. 
*/
 
add_action( 'init', 'custom_post_type', 0 );

Vous remarquerez peut-être aussi la partie où nous avons défini la valeur hiérarchique à false. Si vous souhaitez que votre type de publication personnalisé se comporte comme une page plutôt que comme un article, vous pouvez définir cette valeur sur true.

Une autre chose à notifier est l’utilisation répétée de la chaine twentytwentyone , c’est ce qu’on appelle le domaine de texte. Si votre thème est prêt pour la traduction et que vous souhaitez que vos types de publication personnalisés soient traduits, alors vous devrez mentionner le domaine de texte utilisé par votre thème.

Vous pouvez trouver le domaine de texte de votre thème à l’intérieur du fichier style.css dans le répertoire de votre thème ou en allant dans Apparence «  Éditeurs/éditrices de fichiers de thème dans votre panneau d’administration. Le domaine de texte sera mentionné dans l’en-tête du fichier.

Finding the textdomain for a theme

Remplacez simplement twentytwentyone par le domaine de texte de votre thème.

Une fois que vous êtes satisfait des modifications, cliquez simplement sur le bouton « Mettre à jour » et WPCode s’occupera du reste.

Créer un type de publication personnalisé à l’aide d’une extension

Une autre façon facile de créer un type de publication personnalisé dans WordPress est d’utiliser une extension. Cette méthode est recommandée pour les débutants car elle est sûre et très facile.

La première chose à faire est d’installer et d’activer le plugin Type de publication personnalisé UI. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.

Une fois activé, vous devez vous rendre dans CPT UI  » Add / Edit Post Types pour créer un nouveau type de publication personnalisé. Vous devez vous trouver sur l’onglet  » Ajouter un nouveau type de publication « .

Create a New Custom Post Type With a Plugin

Tout d’abord, vous devez fournir un slug pour votre type de publication personnalisé, par exemple  » films « . Ce slug sera utilisé dans l’URL et dans les requêtes de WordPress, il peut donc contenir uniquement des lettres et des chiffres. En dessous, vous devez fournir les noms au pluriel et au singulier pour votre type de publication personnalisé.

Ensuite, si vous le souhaitez, vous pouvez cliquer sur le lien « Créer des libellés supplémentaires à partir des libellés choisis ». Cela remplira automatiquement les champs de libellés supplémentaires ci-dessous et vous permettra généralement d’enregistrer un gain de temps.

Vous pouvez maintenant défiler vers le bas jusqu’à la section « Libellés supplémentaires ». Si vous n’avez pas cliqué sur le lien que nous avons mentionné, vous devrez maintenant fournir une description pour votre type de publication et modifier les libellés.

Scroll Down to the Additional Labels Section

Ces libellés seront utilisés dans l’interface utilisateur de WordPress lorsque vous gérerez le contenu de ce type de publication.

La publication suivante concerne les Réglages du type de publication. À partir de là, vous pouvez configurer différents attributs pour votre type de publication. Chaque option est accompagnée d’une brève description de son rôle.

Scroll Down to the Post Type Settings Section

Par exemple, vous pouvez choisir de ne pas rendre un type de publication hiérarchique comme les pages ou de trier les publications chronologiques à l’envers.

Sous les Réglages généraux, vous verrez l’option permettant de sélectionner les fonctionnalités de modification supportées par ce type de publication. Il vous suffit de cocher les options que vous souhaitez voir incluses.

Check the Supports Options You Want to Include

Enfin, cliquez sur le bouton  » Ajouter un type de publication  » pour enregistrer et créer votre type de publication personnalisé.

C’est tout. Vous avez bien créé votre Type de publication personnalisé et vous pouvez commencer à ajouter du contenu.

Afficher les types de publication personnalisés sur votre site

WordPress est livré avec un support intégré pour l’affichage de vos types de publications personnalisés. Une fois que vous avez ajouté quelques articles à votre nouveau type de publication personnalisé, il est temps de les afficher sur votre site.

Il existe plusieurs méthodes que vous pouvez utiliser et chacune d’entre elles a ses propres avantages.

Afficher les types de publication personnalisés à l’aide du Modèle d’archive par défaut

Tout d’abord, vous pouvez simplement aller dans Apparence  » Menus et ajouter un lien personnalisé à votre menu. Ce lien personnalisé est le lien vers votre type de publication personnalisé.

Add a Custom Link to Your Menu

Si vous utilisez des permaliens adaptés au référencement, l’URL de votre type de publication personnalisé ressemblera probablement à ceci :

http://example.com/movies

Si vous n’utilisez pas de permaliens adaptés au référencement, l’URL de votre type de publication personnalisé ressemblera à ceci :

http://example.com/?post_type=movies

N’oubliez pas de remplacer « exemple.com » par votre propre nom de domaine et « films » par le nom de votre type de publication personnalisé.

Enregistrez votre menu, puis visitez l’interface publique de votre site. Vous verrez le nouvel élément de menu que vous avez ajouté, et lorsque vous cliquerez dessus, il affichera la page d’archive de votre type de publication personnalisé en utilisant le fichier de modèle archive.php de votre thème.

Preview of Custom Post Type Menu Item

Créer des modèles de type de publication personnalisés

Si vous n’aimez pas l’apparence de la page d’archive de votre type de publication personnalisé, vous pouvez utiliser un Modèle dédié aux archives de type de publication personnalisé.

Tout ce que vous avez à faire est de créer un nouveau fichier dans le répertoire de votre thème et de le nommer archive-movies.php. Confirmez que vous remplacez « films » par le nom de votre type de publication personnalisé.

Pour Premiers pas, vous pouvez copier le contenu du fichier archive.php de votre thème dans le modèle archive-movies.php, puis le modifier en fonction de vos besoins.

Désormais, chaque fois que l’on accède à la page d’archive de votre type de publication personnalisé, ce Modèle sera utilisé pour l’afficher.

De même, vous pouvez également créer un modèle personnalisé pour l’affichage de la publication unique de votre type de publication. Pour ce faire, vous devez créer single-movies.php dans le répertoire de votre thème. N’oubliez pas de remplacer « films » par le nom de votre type de publication personnalisé.

Vous pouvez Premiers pas en copiant le contenu du Modèle single.php de votre thème dans le Modèle single-movies.php et ensuite commencer à le modifier pour répondre à vos besoins.

Pour en savoir plus, consultez notre guide sur la façon de créer des modèles de publication unique personnalisés dans WordPress.

Afficher les types de publication personnalisés sur la page d’accueil

L’un des avantages de l’utilisation des types de publication personnalisés est qu’elle permet de séparer vos types de contenu personnalisés de vos publications habituelles. Toutefois, si vous le souhaitez, vous pouvez afficher les types de publication personnalisés sur la page d’accueil de votre site.

Ajoutez simplement ce code en tant que nouvel extrait de code à l’aide de l’extension gratuite WPCode. Veuillez consulter la section de cet article consacrée à l’ajout manuel de code pour obtenir des instructions détaillées.

add_action( 'pre_get_posts', 'add_my_post_types_to_query' );
 
function add_my_post_types_to_query( $query ) {
    if ( is_home() && $query->is_main_query() )
        $query->set( 'post_type', array( 'post', 'movies' ) );
    return $query;
}

N’oubliez pas de remplacer « films » par votre type de publication personnalisé.

Outil de types de publication personnalisés

Si vous êtes familier avec le codage et que vous souhaitez exécuter des requêtes en boucle dans vos modèles, voici comment procéder. En interrogeant la base de données, vous pouvez récupérer les articles d’un type de publication personnalisé.

Vous devrez copier l’extrait de code suivant dans le Modèle où vous souhaitez afficher le type de publication personnalisé.

<?php 
$args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args ); 
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?> 
</div>
<?php endwhile;
wp_reset_postdata(); ?>
<?php else:  ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>

Ce code définit le type de publication et le nombre de publications par page dans les arguments de notre nouvelle classe WP_Query. Il exécute ensuite la requête, récupère les publications et les affiche à l’intérieur de la boucle.

Afficher les types de publication personnalisés dans les widgets

Vous remarquerez qu’il existe un widget par défaut dans WordPress pour afficher les publications récentes, mais qu’il ne vous permet pas de choisir un type de publication personnalisé.

Que se passerait-il si vous vouliez afficher les dernières entrées de votre nouveau type de publication dans un widget ? Il existe un moyen simple de le faire.

La première chose à faire est d’installer et d’activer le plugin Type de publication personnalisé Widgets. Pour plus de détails, consultez notre guide étape par étape sur l’installation d’une extension WordPress.

Une fois activé, il vous suffit de vous rendre dans Apparence  » Widgets et de faire glisser le widget  » Articles récents (type de publication personnalisé)  » dans une colonne latérale.

Recent Custom Post Type Widget

Ce widget vous permet d’afficher les publications récentes de n’importe quel type de publication. Vous devez sélectionner votre type de publication personnalisé dans le menu déroulant « Type de publication » et sélectionner les options souhaitées.

Confirmez ensuite que vous avez cliqué sur le bouton « Mettre à jour » en haut de l’écran, puis visitez votre site pour voir le widget en action.

Preview of Recent Custom Post Type Widget

L’extension propose également des widgets de type de publication personnalisés qui affichent les archives, un calendrier, des catégories, des commentaires récents, une recherche et un nuage d’identifiants.

Custom Post Type Archives Widget

Nous espérons que ce tutoriel vous a aidé à apprendre comment créer des types de publication personnalisés sur WordPress. Vous voudrez peut-être aussi apprendre comment augmenter le trafic de votre blog, ou consulter notre liste d’erreurs WordPress courantes et comment les corriger.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Divulgation : Notre contenu est soutenu par les lecteurs. Cela signifie que si vous cliquez sur certains de nos liens, nous pouvons gagner une commission. Consultez comment WPBeginner est financé, pourquoi cela compte et comment vous pouvez nous soutenir. Voici notre processus éditorial.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

L'ultime WordPress Toolkit

Accédez GRATUITEMENT à notre boîte à outils - une collection de produits et de ressources liés à WordPress que tous les professionnels devraient avoir !

Reader Interactions

131 commentairesLaisser une réponse

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Anna says

    Good stuff! TY!

    Is it possible to select a category for the CPT or create it’s own category list?
    In your example of ‘Movies’ – select which category – Family, Drama, Action, etc?

  3. Michelle says

    Hi! How can I set the query to only display custom post types by category on the category page? Currently, my query pulls ALL the post type, and I can’t seem to get just current category to display. thanks

  4. hussain says

    I have used this method which you explained above, but after creating a new menu, menu has created successfully created but when I click my menu it shows me error that « This page could not foun »

    • WPBeginner Support says

      It sounds like you would need to check and resave your permalinks to be safe. The other thing you could do would be to ensure you have a custom post type published for be found on the page.

      Administrateur

  5. Jarkko says

    So I used Code Snippets and the longer code but the features after ‘supports’ are not visible anywhere? Shouldn’t they be visible when clicking « Add new »… How do I insert a new movie and the information of it… I don’t get it.

    • WPBeginner Support says

      There should be a new section in your admin area where you can add new posts of your custom post type similar to how you add posts or pages.

      Administrateur

  6. Johan says

    Seems to work perfectly, except for one thing: My theme is showing featured images on the pages. But when I use the CPT the images are never show, whatever I do. Any idea why?

    • WPBeginner Support says

      Your theme likely has a different template being used, if you reach out to your theme’s support they should be able to assist.

      Administrateur

  7. D Hebing says

    I tried many things with the code above, even compare it with the twintytwintyone theme of wordpress. But the post types don’t appear in the backend in the post editor.

  8. Max says

    Thanks very useful.

    What do you think? In such cases from view of site speed it is better to install the plugin or write the code you provide?

  9. Marshal Tudu says

    Thanks a lot for the help. I am trying to create a movie database on my website
    Your post really helped me.

  10. Leslie Campos says

    Great article! I tried to add two different post types on top of blog posts but the second add_action( ‘init’, ‘create_posttype’ ); overwrote the first one. I don’t know php but am wondering if it is possible to create two different ones in the same functions.php file. I don’t know php so perhaps it’s the way I am writing it?

    • WPBeginner Support says

      We would recommend using the plugin method to make the process easier. For a second post type with the code, you would need to copy from lines 4 to 17 and paste it on a new line below 17 then rename movies to a different name.

      Administrateur

  11. Girish Sahu says

    Really loved the article, Simple explained and was really of great help.
    I wanted to mix custom posts and blogs post in a single page and was able to do so after reading the article.

  12. Rafiozoo says

    Great recipe! Thank you!
    One question:
    ‘exclude_from_search’ => true
    should exclude my new custom posts from search results, I believe. Why does not work?

  13. snelson says

    Is there a way to display the new post type without the new slug? example. Default is mysite.com/newposttype/newpage

    I would like

    mysite.com/newpage/

  14. Yogesh says

    Hi,

    I tried to use the manual approach using the simple code youve mentioned for creating a custom post type, but unfortunatley the posts dont show up (page not found error). The post permalink structure looks fine but the posts dont get displayed.

    • WPBeginner Support says

      You may want to clear the cache for your site and resave your permalinks to clear that issue.

      Administrateur

  15. rajni says

    hey thank you so much it working fine but i want to show post type on a page where only categories will show and when click on category post listed under this category will open can you please suggest me how to do that.thank you in advance

    • WPBeginner Support says

      For what it sounds like you’re wanting, you would want to ensure that categories are enabled for your custom post type and you could then add the category link in your menu for the page listing them how you want

      Administrateur

  16. G'will Chijioke says

    Hi, i am a newbie developer trying to create a custom post type.

    All is good, just 1 huge problem.

    I want to display the taxonomies that i created and linked to the post (tags and categories ) on the post itself.

    i want to show it on my breadcrumbs as well.

    pls it would mean d world if you helped me out.

    Thanks in advance.

  17. RZKY says

    One question, in the default WP post dashboard, there’s a filter by categories feature on top of the list.

    So I already link my custom post type with a custom taxonomy, but the filter menu is not showing (A portfolio post type, and the portfolio category custom taxonomy). Is there any settings i need to enable? I’m doing this from inside my functions.php

  18. Feras says

    Hi there, So « Custome post type UI » is not compatible with my wp version! is there any useful plugin that I CAN USE

  19. Oscar says

    Hi!. I want to ask you something.
    I created a Custom Post Types.
    But when i create a post, there isnt the options « Page Attributes », to choose the template and order the posts.
    How can I get it?

    Thanks in advanced.

    • Syed Furqan Ali says

      Hi Oscar,

      If you are using the CPT UI plugin to create custom post types, you’ll need to ensure that you enable the « Page Attributes » option under the « Supports » section. This will allow you to assign parent pages to your custom post types. Similarly, if you are using custom code to create custom post types, make sure to include the « page-attributes » in the supports parameter to enable this feature.

  20. Kevin says

    I’ve created a CPT with unique archive page, but I would like to be able to show a featured image for the archive page (not from the first post) but as the archive page doesn’t exist in « pages » there is no way to add the featured image

    how would this be achieved ?

  21. Mottaqi says

    I want a custom post type page that will be open from archive.php page with all it’s posts and under this page I want to place it’s all posts as sub menu items. But when I create a custom link page and place it’s sub menu items as I describe, sum menu url will open but my main archive page , I mean that post type page url will disappear.
    Plz I want to access both pages.. But how…?

  22. Steven Denger says

    Will adding Custom Post Types allow me to have another posting page for these? My regular Home page has products running through that. I need an additonal posting page for product reviews. When I create a review, I need it to post on another feature page. Is this what tis is for?

    • Jim says

      Also notice repeated usage of twentythirteen, this is called text domain. If your theme is translation ready and you want your custom post types to be translated, then you will need to mention text domain used by your theme. You can find your theme’s text domain inside style.css file in your theme directory. Text domain will be mentioned in the header of the file.

  23. Angela says

    Hello and thank you for this post (and several others).

    I have created the new custom post type of « stories » and its showing up in my WP dashboard. I can create a new post but when I try to open the Beaver Builder page builder to build the post, it won’t open and goes to « Sorry, this page doesn’t exist » error page.

    Can you help?

    Thank you,
    Angela

    • WPBeginner Support says

      Hi Angela,

      First, you should try updating your permalinks. Simply visit Settings » Permalinks and then click on the save changes button without changing anything.

      If this doesn’t resolve your issue, then contact plugin’s support.

      Administrateur

      • Angela says

        Hi and thank you for your reply. I did what you suggested and it didn’t help. My plugin is created using the customer post type code above and is placed in a site-specific plugin, so I have no plugin support source from which to seek help other than you :)

        I deleted the site-specific plugin (which of course included the CPT code) and new posts and pages still won’t load using the Beaver Builder theme page builder function, but they will at least show the page with a large white bar loading endlessly. I deactivated Ultimate Add-ons for Beaver Builder plugin and new posts and pages will now load using page builder. I think there may have been a conflict between UABB plugin and the CPT plugin and now the conflict remains in UABB plugin.

        Any suggestions would be much appreciated. I also have put in a request to UABB. Maybe between the two of you, you could help resolve this issue and make note of this conflict for future reference.

  24. JonO says

    Great site BTW, really really helpful so thanks for creating.

    I’m super stuck and have been reading tutorials all over the web and not found the answers I need.

    I want to create a user opt-in custom taxonomy (Let’s call it user_interests) that can be used to display a custom list of posts that are unique to that particular user.

    User will opt-in to user_interest tags/catergories/whatever during sign up or when editing profile.

    Then the WP loop should include these values to display posts

    Any ideas, help would be really appreciated, thanks.

  25. Jonathan says

    How do I get my user/visitors to my site be able to enter information to a form, and have that submitted data be displayed on which ever page or location I like? I want to allow my users be able to submit complaints and have other users able to like/reply to the main complaint submitted.

    Am I able to do this with Custom Post Type?

  26. R Davies says

    You have a syntax error in your second (more detailed) example, code does not work in latest WordPress 7.4.3

    ) Warning: call_user_func_array() expects parameter 1 to be a valid callback, function ‘custom_post_type’ not found or invalid function name

    Any chance of an update / correction?

    • Robert Stuart says

      On line 31? Yes, that’s normal PHP code.
      « The comma after the last array element is optional and can be omitted. This is usually done for single-line arrays, i.e. array(1, 2) is preferred over array(1, 2, ). For multi-line arrays on the other hand the trailing comma is commonly used, as it allows easier addition of new elements at the end. »

  27. Arias says

    Hello, I have been having problems with this plugin.

    It has disabled the option to create categories and tags,
    I have been looking for an example to place them manually but I still have not found anything.

    I am trying to undo if with this method I can fix the problem but I would greatly appreciate your help.

    • stormonster says

      In your $args array, on the ‘taxonomies’ index, add ‘category’ and ‘post_tag’.
      That should do the trick.

    • Ilija says

      This is why I use my own CMS where I can create new post types in a fraction of a second directly through cms itself. Without any coding, unfortunately big agencies want WordPress developers and have to learn it, seems so complicated..

  28. Sarah A says

    Hi, i’ve succeded to display group of CPT with a specific design in a pop-up when you click on a image like the first one But it opens a new page and when you click out of the pop-up to quit you don’t return to the homepage, and i don’t want that. I want all on the homepage.

    I’ve put the code of the CPT to display as the pop-up on « single-chg_projet.php » and open and close the pop-up with javascript. I’ve already tried to put all the code of single-chg_projet.php on the index, but it display nothing. Or i may be failed somewhere. Please help me. Thanks

  29. Ghulam Mustafa says

    Hi,

    Thanks for the great code. Just a minor correction to the code. The endwhile; statement is missing before else: statement in the Querying Custom Post Types section =)

    • Tony Peterson says

      THIS! Please update your code to reflect this syntax error as it caused me a bit of heartache until I found Ghulam’s comment. It’s working now.

  30. david ben oren says

    how do i clone a post type which has a speicifc table in it, i need to create a seperate post type for other tables.

  31. Megan says

    I’ve downloaded the plugin and want to add two custom post types. 1. Fanfiction for all of my writings and 2. Fanart for all of my art.

    For Fanfiction – I want the ability to link chapters together into a story and be able to upload chapters to a story as I write them.

    For Fanart – I’d like to have the focus be on an image (obviously) with a description underneath it

    Is this article what I need or this something completely different?

    Thanks,
    Megan

  32. Zubair Abbas says

    Hi,

    I simply copied the code to my site’s functions.php. The new post type is visible in the dashboard but when I try to see a post after publishing it, a blank page appears. Later I realised that even the default posts are not opening.

    When I remove the code from functions.php everything works fine again.

    Please help :(

    Thanks,

    Zubair Abbas

    • Jouke Nienhuis says

      If you see a blank page, it often means that you forgot a character. The fact that you see the posts if you delete your custom code, confirms that you have a typo. Check for semi-colons  » ;  » and the opening and closing brackets.
      To see exactly where you made a mistake, you could edit the wp-config file. Look for ERROR REPORTING and set this value to true. After that test again and there you get an error and a line with the omission.

  33. Alex says

    I have created the CPT and is working beautifully, but Google cannot find it even after updating sitemaps, using SEO plugins or fetching on Google Webmaster Tools. Any thoughts on why is that happening?

    • WPBeginner Support says

      It takes Google sometime to start showing new content in search results. Just to be on safe side, check your SEO plugin settings to make sure you are not blocking indexing of your CPTs or CPT archive pages.

      Administrateur

  34. Amunet says

    Creating Custom Post Type can be easy especially with a plugin. The real trick is to show them on the page. Usually you need quite advanced custom development or theme specific plugins like that for Avada.

    Unfortunately there is no universal way to display CPT in WordPress.

    • Jouke Nienhuis says

      Like the author said, but I will repeat the answer.
      In a nutshell create a link in your navigation menu
      Advanced answer in a nutshell: create an archive page and a single page

  35. Chuck says

    Great article. How can you modify single post CPT post info based on the custom taxonomy? For instance:

    Date | Author | Series | Book | Topic

    This is easy to write but I want to figure out how to display a modified post info if one the missing taxonomy of Series, like:

    Date | Author | Book | Topic

    Otherwise the default post info displays as:

    Date | Author | | Book | Topic

Laisser une réponse

Merci d'avoir choisi de laisser un commentaire. Veuillez garder à l'esprit que tous les commentaires sont modérés selon notre politique de commentaires, et votre adresse e-mail ne sera PAS publiée. Veuillez NE PAS utiliser de mots-clés dans le champ du nom. Ayons une conversation personnelle et significative.