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

Så här skapar du custom post types i WordPress

Custom post types allow you to go beyond standard posts and pages. De låter dig skapa olika content types som är skräddarsydda för din sites specifika behov.

Med custom post types kan du till exempel omvandla din site i WordPress från ett enkelt blogginlägg till ett robust system för innehållshantering (CMS).

Det är därför vi använder vissa custom post types på våra egna webbplatser. I den här guiden kommer vi att visa you hur man enkelt skapar custom post types i WordPress.

How to Create Custom Post Types in WordPress

Vad är en Custom Post Type i WordPress?

På din WordPress website används post types för att hjälpa till att skilja mellan olika content types i WordPress. Posts och pages är båda post types men är skapade för att tjäna olika syften.

Som standard levereras WordPress med några olika post types:

  • Post
  • Page
  • Attachment
  • Revision
  • Nav-meny

Med det sagt kan du skapa dina egna posttyper, så kallade custom post types. Dessa är användbara när du skapar content med ett annat format än ett standard post eller page.

Låt oss säga att du run en film review website. Då skulle du förmodligen vilja skapa en ”movie reviews” post type. Du kan också skapa custom post types för portföljer, rekommendationer, produkter och mycket mer.

Dessutom kan custom post types ha olika anpassade fält och sin egen anpassade kategoristruktur.

På WPBeginner använder vi till exempel custom post types för våra Deals och Glossary sections för att hålla dem åtskilda från våra dagliga bloggartiklar. Det hjälper oss att bättre organisera innehållet på vår website.

Många populära WordPress-tillägg använder custom post types för att lagra data på din WordPress website. Följer är några populäraste tillägg som använder custom post types:

  • WooCommerce add to en ”product” post type till din online store
  • WPForms skapar en ”wpforms” post type för att lagra alla dina formulär
  • MemberPress adderar en ”memberpressproduct” custom post type

Video Tutorial

Subscribe to WPBeginner

Om du föredrar skriftliga instruktioner är det bara att fortsätta läsa.

Behöver jag skapa Custom Post Types?

Innan du börjar skapa custom post types på din WordPress site, är det viktigt att utvärdera dina behov. Ofta kan du uppnå samma resultat med ett vanligt post eller en vanlig page.

Om du ej är säker på om din site behöver custom post types kan du läsa vår guide om när du behöver en custom post type eller taxonomi i WordPress.

Med detta i åtanke, låt oss ta en titt på hur du enkelt kan skapa custom post types i WordPress för eget bruk. Vi kommer att visa dig två metoder och även täcka några sätt att visa custom post types på din WordPress website:

Är du redo? Låt oss sätta igång.

Skapa en Custom Post Type manuellt med hjälp av WPCode

Att skapa en custom post type är obligatoriskt för att du ska kunna add to code till ditt temas functions.php-fil. Vi rekommenderar dock inte detta till någon annan än avancerade användare eftersom även ett litet misstag kan förstöra din site. Dessutom kommer koden att raderas om du uppdaterar ditt theme.

Istället kommer vi att använda WPCode, det enklaste och säkraste sättet för vem som helst att add to custom code till din WordPress website.

Med WPCode kan du add to custom snippets och aktivera många funktioner från det inbyggda, pre-konfigurerade kodbiblioteket. Med andra ord kan det ersätta många dedikerade tillägg eller tillägg för engångsbruk som du kanske har installerat.

Först måste du installera och aktivera det gratis pluginet WPCode. För detaljerade instruktioner, kontrollera vår Step-by-Step guide om hur du installerar ett WordPress plugin.

När du är aktiverad navigerar du till Code Snippets ” Add Snippet från din WordPress dashboard. Sedan vill du hovera musen över ”Add Your Custom Code (New Snippet)” och sedan klicka på ”Use Snippet”.

Add custom code in WPCode with new snippet

Detta kommer att öppna vyn ”Create Custom Snippet”.

Nu kan du skapa titeln på code snippet och toggle omkopplaren till ”Active”.

Creating a custom code snippet using WPCode

Följ detta genom att klistra in följande kod i ’Code Preview’ area. Denna kod skapar en grundläggande custom post type som heter ”Movies” som kommer att visas i din admin sidebar och fungera med alla teman.

// 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' );

Om du bara vill ha en grundläggande custom post type ersätter du bara movies och Movies med din egen CPT-slug och ditt eget namn och klickar på knappen ”Update”.

Men om du vill ha ännu fler alternativ för din custom post type, bör du använda följande kod istället för den ovan.

The code type under add to many more options to the ’Movies’ custom post type, such as support for revisions, featured images, and custom fields, as well as associating the custom post type with a custom taxonomy called ’genres’.

Note : Kombinera ej dessa två snippets, då kommer WordPress att ge dig ett error eftersom båda snippeten registrerar samma custom post type. Vi rekommenderar att du skapar ett helt new snippet med WPCode för varje ytterligare post type som du vill registrera.

/*
* 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 );

You may notice the part where we have set the hierarchical value to false. Om du vill att din custom post type ska bete sig som pages snarare än posts, kan du ställa in detta värde till true.

En annan sak att notera är den upprepade användningen av twentytwentyone string, detta anropas ”Text Domain”. Om ditt tema är översättningsklart och du vill att dina custom post types ska översättas, måste du nämna den textdomän som används av ditt theme.

Du kan hitta ditt temas textdomän i filen style.css i din temakatalog eller genom att gå till Appearance ” Theme File Editor i din adminpanel. Textdomänen kommer att nämnas i filens header.

Finding the textdomain for a theme

Ersätt helt enkelt twentytwentyone med ditt eget temas ”Text Domain”.

När du är nöjd med ändringarna klickar du bara på knappen ”Update”, så sköter WPCode resten.

Skapa en Custom Post Type med ett plugin

Ett annat enkelt sätt att skapa en custom post type i WordPress är genom att använda ett plugin. Den här metoden rekommenderas för Beginnare eftersom den är säker och superenkel.

Det första du behöver göra är att installera och aktivera UI-pluginet Custom Post Type. För mer detaljer, se vår Step-by-Step guide om hur du installerar ett WordPress plugin.

När du är aktiverad måste du gå till CPT UI ” Add / Edit Post Types för att skapa en ny custom post type. Du bör vara på tabben ”Add New Post Type”.

Create a New Custom Post Type With a Plugin

I detta area måste du ange en slug för din custom post type, t.ex. ”movies”. Denna slug kommer att användas i URL:en och i WordPress sökningar, så den kan bara innehålla bokstäver och siffror.

Under slug-fältet måste du ange plural- och singularnamnen för din custom post type.

Om du gillar det kan du clicka på länken som säger ”Populate additional labels based on chosen labels”. Detta kommer automatiskt att fylla i fälten för ytterligare etiketter under och kommer vanligtvis att save you tid.

Du kan nu rulla ner till ”Additional Labels” section. Om du inte klickade på länken som vi nämnde måste du ge en description för din post type och ändra etiketter.

Scroll Down to the Additional Labels Section

Dessa etiketter kommer att användas i hela WordPress användargränssnitt när du hanterar content i viss post type.

Nästa kommer inställningarna för post type. Härifrån kan du ställa in olika attribut för din post type. Varje alternativ kommer med en kort description som förklarar vad det gör.

Scroll Down to the Post Type Settings Section

You kan t.ex. välja att inte göra en post type hierarkisk som pages eller sortera kronologiska posts i omvänd ordning.

Under de allmänna settings ser du alternativet att selecta vilka funktioner för redigering som den här post typen ska stödja. Kontrollera helt enkelt de alternativ som du vill ska ingå.

Check the Supports Options You Want to Include

Slutligen klickar du på knappen ”Add Post Type” för att save och skapa din custom post type.

Det är all, du har utan problem skapat din custom post type! Du kan nu gå vidare och börja lägga till content.

Displaying Custom Post Types på din site

WordPress kommer med built-in support för display av dina custom post types. När du har lagt till några objekt i din nya custom post type är det dags att visa dem på din webbplats.

Det finns några metoder som du kan använda, och var och en har sina egna fördelar.

Displaying Custom Post Types Using Standard Archive Template

First, you can simply go to Appearance ” Menus and add a custom link to your menu. Denna anpassade länk är länken till din custom post type.

Add a Custom Link to Your Menu

Om du använder sökmotorsoptimerande permalänkar kommer URL:en för din custom post type troligen att se ut ungefär så här:

http://example.com/movies

Om du ej använder sökmotorsoptimerande permalänkar kommer din custom post type URL att se ut ungefär så här:

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

Glöm inte att ersätta ’example.com’ med ditt eget domain name och ’movies’ med namnet på din custom post type.

Du kan sedan save din menu och besöka front-enden på din website. Du kommer att se det nya menyalternativet som du har lagt till, och när du klickar på det kommer det att visa din custom post types arkivsida med hjälp av archive. php-mallfilen i ditt tema.

Preview of Custom Post Type Menu Item

Skapa templates för custom post type

Om du inte gillar utseendet på archive page för din custom post type, kan du använda en dedikerad mall för custom post type archives.

Allt du behöver göra är att skapa en new fil i din theme directory och döpa den till archive-movies.php. Se till att du ersätter ”movies” med namnet på din custom post type.

För att komma igång kan du kopiera innehållet i ditt temas archive. php-fil till templaten archive-movies.php och sedan ändra den så att den uppfyller dina behov.

Nu, när archive page för din custom post type öppnas, kommer denna template att användas för att displayed den.

På samma sätt kan du skapa en custom template för displayen av enskilda inlägg av din post type. För att göra det måste du skapa single-movies.php i din theme directory. Glöm inte att ersätta ”movies” med namnet på din custom post type.

Du kan komma igång genom att kopiera innehållet i temats single.php template till single-movies.php template och sedan ändra den så att den uppfyller dina behov.

För att lära dig mer, se vår guide om hur du skapar templates för enskilda inlägg i WordPress.

Displaying Custom Post Types på front page

En fördel med att använda custom post types är att de håller dina custom content types separerade från dina vanliga posts. Du kan dock visa custom post types på din websites front page om du gillar det.

Lägg bara till den här koden som ett nytt snippet med hjälp av det gratis WPCode plugin. Vänligen se sektionen i den här artikeln om att manuellt lägga till kod för detaljerade instruktioner.

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;
}

Glöm inte att ersätta ”movies” med din custom post type.

Sökning efter custom post types

Om du är bekant med kodning och gillar att köra loopfrågor i dina templates, så här gör du det. Genom att söka i databasen kan du hämta objekt från en custom post type.

Du måste kopiera följande code snippet till den template där du vill visa den custom post type.

<?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; ?>

Den här koden definierar post type och antal posts per page i argumenten för vår new WP_Query-klass. Den runar sedan sökningen, hämtar posterna och displayed dem inuti loopen.

Displaying Custom Post Types i widgetar

You will notice that WordPress has a standard widget to display recent posts, but it does not allow you to choose a custom post type.

Vad händer om du vill visa de senaste posterna från din nyskapade post type i en widget? Lyckligtvis finns det ett enkelt sätt att göra detta.

Det första du behöver göra är att installera och aktivera pluginet Custom Post Type Widgets. För mer detaljer, se vår Step-by-Step guide om hur du installerar ett WordPress plugin.

Efter aktivering, gå bara till Appearance ” Widgets och drag and drop widgeten ’Senaste inlägg (Custom Post Type)’ till ett sidofält.

Recent Custom Post Type Widget

Detta widget tillåter dig att visa senaste inlägg från alla post typer. Du måste välja din custom post type från ”Post Type” dropdown och välja de alternativ du vill ha.

Efter det, se till att du klickar på knappen ”Update” högst upp på vyn och besök sedan din website för att se widgeten i action.

Preview of Recent Custom Post Type Widget

Pluginet ger också custom post type widgets som visar archives, en kalender, kategorier, senaste kommentarer, sök och ett taggmoln.

Så känn dig gratis att utforska och välja den du behöver.

Custom Post Type Archives Widget

Vi hoppas att denna tutorial hjälpte dig att lära dig hur du skapar custom post types i WordPress. Sedan kanske du också vill lära dig hur du skapar en custom archive-sida i WordPress eller kontrollera vår lista över viktiga pages som varje WordPress-blogg bör ha.

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.

Avslöjande: Vårt innehåll stöds av våra läsare. Det innebär att om du klickar på några av våra länkar, kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt, och hur du kan stödja oss. Här är vår editoriala process.

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.

Den ultimata WordPress-verktygslådan

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som varje professionell användare bör ha!

Reader Interactions

131 kommentarerLämna ett svar

  1. Syed Balkhi

    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. R Davies

    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?

  3. Archit

    Is the comma at the end if the supports array (in the options for the custom post type) deliberate?

    • Robert Stuart

      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.”

  4. saurabh

    How to enable ’Post Settings’ in Custom_Post_type (using Custom Post Type UI Plugin)?

  5. Arias

    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

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

  6. John D

    Way too much coding. Wordpress need to keep things more simple.

    • Ilija

      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..

  7. Sarah A

    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

  8. Ghulam Mustafa

    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

      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.

    • Arkanum

      Yes! True. It’s miss befire wp_reset_postdate();
      The cycle while does not end :)

  9. Azamat

    Typo: ”When doi I need a custom post type?”

  10. Jhon

    hey, can you guide me in the process of making a custom glossary like you have on your site?

  11. Anil Reddy

    I want to create list type for posts in the category page for my website

  12. david ben oren

    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.

  13. betty

    How do I add a custom field to a Post Type?

  14. Megan

    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

  15. Zubair Abbas

    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

      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.

  16. Alex

    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

      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.

      Administratör

  17. Amunet

    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.

    • WPBeginner Support

      Actually, there are straight forward and standard ways to display CPTs in WordPress. We have mentioned one in the article above.

      Administratör

    • Jouke Nienhuis

      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

  18. Chuck

    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

  19. borahan

    I want to diplay specific category posts for current user in page. How can i do it?

  20. Moazam Ali

    Dear,

    Thanks for the post. I want to make a library of ebooks and want to use custom post type and portfolio to show the thumbnails of books in front end. Can you please guide how i can do that?

  21. Sharon Wallace

    Hello All,
    This is a great plugin. I’m trying to get the taxonomy to show on the page. I created one called Presenters. You can see it here.

    How can I make that happen?

    Thank you

  22. Dave S.

    Hi,
    I have created a form (using ArForms plugin) which I need it to be turned into a Post-Type. Do you have any suggestions as to how to accomplish this please?

    Thank you.

  23. Mark Greenway

    Thanks for this, exactly what I needed to know to help me get to grips with custom post types.

    Mark.

  24. shashik

    Thanks dear..it’s very useful..

  25. Graham

    Thank you! Just what I was looking for. It’s amazing how many times I find wordpress work-arounds and then forget how I do them and keep having to come back.

    Much appreciated!

  26. Ram

    Very useful! Thank you….

  27. MELAS

    Dear,

    I don’t have a lot of knowledge about coding. How can I see on the specific page theses Custom post types and taxonomies?

    Thanks in advance!
    MELAS

  28. Mike Ritter

    Is there an error? Shouldn’t the function be `create_post_type`?

    • WPBeginner Support

      No mike, it is not a core function. You can define this function anyway you want.

      Administratör

  29. Vera

    Hello,
    Thank yo for this beautiful tutorial.
    I have gone and done everything as you said.
    Two things I do not understand:
    1.
    You have specified taxonomy ”genre”. Where is that set up? What if I want to make the actual genres underneath that? How do I make them? Where do I see them?
    2.
    I would like to make the menu links to the ”Movies” and underneath – sublinks to ”Genres”. I can see the ”Movies” in the Menu section, each post, like pages. Don’t really need that, but I won’t mind. How to see the ”Genres” in there?
    Thank you,
    Vera

    • WPBeginner Support

      Seems like you have successfully created your custom post type, i.e. Movies. The next step is to create custom taxonomy, Genres. A taxonomy is a way to sort content in WordPress. Categories and tags are two default taxonomies that come built in with WordPress and are by default associated with ’Posts’. Please see our tutorial on how to create custom taxonomies in WordPress. Follow the instructions in that tutorial to create your custom taxonomy Genres and associate it with the post type movies. Your custom taxonomy will appear below the Movies menu in WordPress admin area.

      Administratör

  30. Hamed 3daJoo

    I do All Of This but when i want to public a post by this post type my post types redirects to main page (i Just coppied your code without any changes)
    for example i write this post with Movies post type

    please help me ilove post type but i can’t use it correctly

    • Ciprian

      Have you tried re-saving the permalinks structure?

      Cheers!

  31. Aaron

    Excellent post! Thanks for the content.. helped a lot.

  32. antonio

    hi i’m trying to add the snippet of code fort the post type movie… i copied it into functions.php but when i refresh the page nothing is shown. i’m using the twenty fourteen theme… what can be wrong?

  33. ashish shestha

    How to display Csutom post type in front End??

  34. Fahd

    Hi, Custom post types on my wordpress website were working fine from last 2 years. But what happend is when I change the title of post and click update it save other changes too. But if I keep the post title same and make changes in the post, it doesn’t save it. Any recommendations please?

  35. Arup Ghosh

    I want to create a custom post type coupons with reveal coupon option and the code will link to the store url, can you tell me how can I do that. I don’t have much knowledge about coding.

  36. Isaías Subero

    Great articule. How can I add icons to custom post types on the wordpress back-end just like it is shown on the picture?

    • Jouke Nienhuis

      it is one of the arguments ($args) when defining the custom post type.
      Add ’menu-icon’ => ’dashicons-cart’ to the $args list.
      WordPress uses built-in dashicons, but you can also use your own icons.
      More information on this link:

  37. Johan

    Hi, the excerpt and the custom fields data is not displaying in the front end… any idea of why this is happening?

  38. Bill Querry

    I forgot to mention, prreferably via code for my functions.php file since that’s where the curernet CPT are defined.

  39. Bill Querry

    I am looking at a way to add categories to some existing custom post types. Anyone able to point me in the right direction?

    • Jouke Nienhuis

      You can add new taxonomies to an existing Post Type (custom or not) just by filling in the right post-type when you write the function to create it. Category is just a taxonomy name which includes all posts with a category.
      If you want to make a new category, just click on category on the menu and create a new one.
      Examples of categories are Boats if your post is about boats or planes if your post is about planes. More categories is also possible, just select or add them in the right sidecolumn when you are writing your new post or editing one.
      A post type is not attached or linked to a specific category, a post is.

  40. Robey Lawrence

    I just tried to use the snippet under
    Querying Custom Post Types,
    and figured out it needs a before the reset.

  41. YassinZ

    Thanks for the clean handy article
    I just want to use the text editor in the custom post
    so that I can use html tags,

  42. Yassin

    thanks for such an awesome clear tutorial
    but I’m faceing a problem in displaying the CPT I’m using SEO friendly permalinks when I direct to may website/movies the CPT are duplicated

  43. Aris Giavris

    Very useful! Thank you.

    I would like to add to every tag of my posts one of the following signs: +, -, +/-. May I?

    If so, then I would like to have the choice to represent the signed tags as follow: all the +tags, all the -tags, all the +/-tags.

    I think I am questioning a lot of things.

  44. Placid

    Hi,

    I am having a hard time implementing a custom post type correctly. I have searched for a solution for a long time but couldn’t find any. Here’s what I did:

    1. Freshly installed WordPress in my local wamp server (enabled apache rewrite_module first).

    2. Using default theme (twenty fourteen). No plugins installed.

    3. Changed permalinks to ”Post name”

    4. In the plugins folder, created a folder named pr_custom_posts and inside that, created a file named pr_custom_posts.php. In the file I created a custom post type. The code is as follows:

    register_post_type();

    //flush_rewrite_rules();

    }

    public function register_post_type () {

    $args = array(

    ’labels’ => array (

    ’name’ => ’Movies’,

    ’singular_name’ => ’Movie’,

    ’add_new’ => ’Add New Movie’,

    ’add_new_item’ => ’Add New Movie’,

    ’edit_item’ => ’Edit Movie’,

    ’new_item’ => ’Add New Movie’,

    ’view_item’ => ’View Movie’,

    ’search_items’ => ’Search Movies’,

    ’not_found’ => ’No Movies Found’,

    ’not_found_in_trash’ => ’No Movies Found in Trash’

    ),

    ’query_var’ => ’movies’,

    ’rewrite’ => array (

    ’slug’ => ’movies/’,

    ’with_front’=> false

    ),

    ’public’ => true,

    ’publicly_queryable’ => true,

    ’has_archive’ => true,

    ’menu_position’ => 10,

    ’menu_icon’ => admin_url().’/images/media-button-video.gif’,

    ’supports’ => array (

    ’title’,

    ’thumbnail’,

    ’editor’

    )

    );

    register_post_type(’jw_movie’, $args);

    //flush_rewrite_rules();

    }

    }

    add_action(’init’, function() {

    new PR_Movies_Custom_Post();

    //flush_rewrite_rules();

    });

    ?>

    The Good Thing: The CPT is showing in my admin panel and I can add and view movies there.

    THE PROBLEM: I cannot preview the movies in the front end (By clicking the ”view” in the CPT in admin panel). It shows in the front end only when I set permalink to default (http://localhost/wp02/?p=123).

    What I have tried:

    1. Go to permalink, keep permalink settings to ”Post name” and Save changes.

    2. Use flush_rewrite_rules() in several places (one by one) in my code. Please see the commented out parts in the code above.

    3. Created a menu item as:

    URL: http://localhost/wp02/movies

    Navigation Label: Movies

    This creates a menu item in the front end but shows ”Not Found” when ”Movies” link is clicked.

    This is driving me crazy. Can anyone please help on this? I would really appreciate.

    • kikilin

      I was going crazy too with the same ”Not Found” issue, until I tried this: go to Settings > Permalinks and then re-save your settings. I had switched my setting to Default, and then changed it to Post Name (for my project’s needs). After that, links were working as expected.

    • rehan

      Helpfull tutorials and posts :D thanks

  45. ceslava

    Another easy way is just duplicate the archive.php and rename it to archive-movies.php and the same for single.php -> single-movies.php

    Then you can make tweaks to the php files for your theme.

    Best regards

  46. Achilles Khalil

    Very hard to display. please can you make a video tutorial ?

  47. Mik

    Hi, I’ve been reading and following your posts for so long now, you are amazing, and targeting those missing stuff of beginners… Thank you.

  48. Davide De Maestri

    This plugin should be okay, but after every upgrade they’ve got some bug. Due to exporting field, or while migrating from local to remote etc… So It’s better to hand-write the code and put into functions.php :D

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt våra policy för kommentarer, och din e-postadress kommer INTE att publiceras. Vänligen använd INTE nyckelord i namnfältet. Låt oss ha en personlig och meningsfull konversation.