{"id":41425,"date":"2023-08-03T10:03:03","date_gmt":"2023-08-03T10:03:03","guid":{"rendered":"https:\/\/crocoblock.com\/knowledge-base\/?post_type=article&#038;p=41425"},"modified":"2023-10-25T08:35:15","modified_gmt":"2023-10-25T08:35:15","slug":"creating-custom-content-type-listing-template","status":"publish","type":"article","link":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/","title":{"rendered":"How to Create Custom Content Type Listing Template in Elementor"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"check-the-custom-content-type\">Check the Custom Content Type<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<p>Let us first check a Custom Content Type for which a Listing template can be created.<\/p>\n\n\n\n<p>Go to <strong><em>JetEngine &gt; Custom Content Types<\/em><\/strong> and see if there is any existing CCT. If you don\u2019t have any CCT, create one.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_176.png\" alt=\"custom content types list\">\n\n\n\n<p>We will revise an existing Custom Content Type to ensure we have custom fields to output.<\/p>\n\n\n\n<p>So we added these four meta fields to display them in the Listing Grid later. Don\u2019t forget to hit the <strong>\u201cUpdate\u201d <\/strong>button to save changes.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_177.png\" alt=\"custom meta fields for CCT\">\n\n\n\n<p>You also need to fill in these custom fields on the edit CCT item page so there is content to show.<\/p>\n\n\n\n<p>Do not forget to save the CCT item after editing it.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_178.png\" alt=\"CCT item editing\">\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"create-a-listing-template\">Create a Listing Template<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<p>Now we can go to <strong>JetEngine &gt; Listings<\/strong> and press the <strong>\u201cAdd New\u201d<\/strong> button.&nbsp;<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_179.png\" alt=\"create a listing item\">\n\n\n\n<p>Select the \u201cCustom Content Type\u201d option as the <strong>Listing source<\/strong> and pick a <strong>content type<\/strong> for which you want to create the Listing. You also need to write a <strong>Listing item name<\/strong> and click the <strong>\u201cCreate Listing Item\u201d<\/strong> button.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"660\" height=\"467\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_180.png\" alt=\"setup listing item\" class=\"wp-image-41430\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_180.png 660w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_180-300x212.png 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_180-600x425.png 600w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/div>\n\n\n\n<p>Once you are in the editor, you can add the <a href=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/dynamic-field-widget-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Dynamic Field<\/strong><\/a> widget to pull data from the CCT.<\/p>\n\n\n\n<p>The <strong>Source<\/strong> should be \u201cPost\/Term\/User\/Object Data.\u201d In the <strong>Object Field<\/strong>, you will see a block of fields from the needed Custom Content Type.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"510\" height=\"717\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_182.png\" alt=\"object field\" class=\"wp-image-41432\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_182.png 510w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_182-213x300.png 213w\" sizes=\"(max-width: 510px) 100vw, 510px\" \/><\/div>\n\n\n\n<p>You can add multiple <strong>Dynamic Field <\/strong>widgets to output each CCT field.<\/p>\n\n\n\n<p>Keep in mind that some custom fields also need to have a <strong>Callback<\/strong> applied to display the data.<\/p>\n\n\n\n<p>In the screenshot below, you can see a <strong>Media<\/strong> field, which stores an image by ID and has the \u201cGet Image by ID\u201d <strong>Callback<\/strong> activated to show the image instead of just its ID.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"398\" height=\"880\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_181.png\" alt=\"get image by ID callback\" class=\"wp-image-41431\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_181.png 398w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_181-136x300.png 136w\" sizes=\"(max-width: 398px) 100vw, 398px\" \/><\/div>\n\n\n\n<p>A field with a link can be output using the <strong>Customize field output <\/strong>option. We added the HTML tag &lt;a&gt; to create a clickable link.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"397\" height=\"903\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_183.png\" alt=\"\" class=\"wp-image-41433\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_183.png 397w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_183-132x300.png 132w\" sizes=\"(max-width: 397px) 100vw, 397px\" \/><\/div>\n\n\n\n<p>Let us also check another example. There may be a case when multiple fields need to be output using just one widget in case you need to combine values.<\/p>\n\n\n\n<p>This can be achieved by shortcodes because multiple shortcodes can be utilized within just one widget.<\/p>\n\n\n\n<p>To create a shortcode, you can use a tool called the <strong>Shortcode Generator<\/strong> provided by the <em>JetEngine<\/em> plugin.<\/p>\n\n\n\n<p>Go to <strong>JetEngine &gt; JetEngine<\/strong>, and enter the <strong>Shortcode Generator<\/strong> tab. The settings of the <strong>Shortcode Generator<\/strong> are the same as in the <strong>Dynamic Field<\/strong> widget. Just select the needed <strong>Source<\/strong> and <strong>Object Field<\/strong>.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_184.png\" alt=\"Item Author field\">\n\n\n\n<p>Note, the \u201cItem Author\u201d field has the user ID as a value. Therefore, we also enabled the <strong>Filter Field Output <\/strong>option and applied the \u201cGet User data by ID\u201d <strong>Callback<\/strong> to transform the user ID into its \u201cDisplay Name.\u201d After that, we copied the shortcode that was generated at the bottom of the page.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_186.png\" alt=\"get user data by ID callback\">\n\n\n\n<p>We generated a shortcode for the \u201cItem Author\u201d and \u201cCreated Date\u201d fields. Using the <strong>Text Editor<\/strong> widget, we added the shortcodes of both fields and wrote the needed text.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_187.png\" alt=\"shortcodes in the text editor widget\">\n\n\n\n<p>Once you added all the necessary fields, the Listing template can be saved by pressing the <strong>\u201cUpdate\u201d <\/strong>button.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"check-results-on-the-front-end\">Check Results on the Front End<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<p>Let us output the Listing template on a page to check the outcome.<\/p>\n\n\n\n<p>Open a page or a template in the Elementor editor, and add the <strong>Listing Grid<\/strong> widget.<\/p>\n\n\n\n<p>Select the <strong>Listing<\/strong> template for CCT that has just been created. Then adjust other settings in the <a href=\"https:\/\/crocoblock.com\/knowledge-base\/features\/listing-grid-widget-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Listing Grid<\/strong><\/a> if needed, and save the template.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_188.png\" alt=\"listing grid displays the CCT data\">\n\n\n\n<p>Proceed to the front end. The Listing Grid shows the CCT items displaying the fields as configured using dynamic widgets and shortcodes.<\/p>\n\n\n\n<img decoding=\"async\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_189.png\" alt=\"listing grid displays the CCT data on the front end\">\n<\/div><\/div>\n\n\n\n<p>That\u2019s it. Now you know how to create a Listing template for the Custom Content Type to display its data in the Listing Grid widget.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.<\/p>\n","protected":false},"author":8,"featured_media":0,"template":"","format":"standard","builder-category":[],"article-category":[322,388],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock<\/title>\n<meta name=\"description\" content=\"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock\" \/>\n<meta property=\"og:description\" content=\"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/\" \/>\n<meta property=\"og:site_name\" content=\"Help Center\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-25T08:35:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_176.png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/\",\"name\":\"How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock\",\"isPartOf\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#website\"},\"datePublished\":\"2023-08-03T10:03:03+00:00\",\"dateModified\":\"2023-10-25T08:35:15+00:00\",\"description\":\"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.\",\"breadcrumb\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/crocoblock.com\/knowledge-base\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/crocoblock.com\/knowledge-base\/articles\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Create Custom Content Type Listing Template in Elementor\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#website\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/\",\"name\":\"Help Center\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/crocoblock.com\/knowledge-base\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#organization\",\"name\":\"Help Center\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg\",\"contentUrl\":\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg\",\"caption\":\"Help Center\"},\"image\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock","description":"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/","og_locale":"en_US","og_type":"article","og_title":"How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock","og_description":"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.","og_url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/","og_site_name":"Help Center","article_modified_time":"2023-10-25T08:35:15+00:00","og_image":[{"url":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2023\/08\/Screenshot_176.png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/","url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/","name":"How to Create Custom Content Type Listing Template \u2014 JetEngine | Crocoblock","isPartOf":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#website"},"datePublished":"2023-08-03T10:03:03+00:00","dateModified":"2023-10-25T08:35:15+00:00","description":"This tutorial explains how to create a JetEngine Listing template for the Custom Content Type to display its data in the Listing Grid widget.","breadcrumb":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/creating-custom-content-type-listing-template\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/crocoblock.com\/knowledge-base\/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https:\/\/crocoblock.com\/knowledge-base\/articles\/"},{"@type":"ListItem","position":3,"name":"How to Create Custom Content Type Listing Template in Elementor"}]},{"@type":"WebSite","@id":"https:\/\/crocoblock.com\/knowledge-base\/#website","url":"https:\/\/crocoblock.com\/knowledge-base\/","name":"Help Center","description":"","publisher":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/crocoblock.com\/knowledge-base\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/crocoblock.com\/knowledge-base\/#organization","name":"Help Center","url":"https:\/\/crocoblock.com\/knowledge-base\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/","url":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg","contentUrl":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg","caption":"Help Center"},"image":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article\/41425"}],"collection":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/users\/8"}],"wp:attachment":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=41425"}],"wp:term":[{"taxonomy":"builder-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/builder-category?post=41425"},{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article-category?post=41425"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}