{"id":83,"date":"2021-03-16T19:17:35","date_gmt":"2021-03-17T01:17:35","guid":{"rendered":"https:\/\/devrel.wpengine.com\/?p=83"},"modified":"2026-02-05T20:59:15","modified_gmt":"2026-02-06T02:59:15","slug":"custom-content-types-in-headless-wordpress","status":"publish","type":"post","link":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/","title":{"rendered":"Custom Content Types in Headless WordPress"},"content":{"rendered":"\n<p>When you build a headless site, you are dependent on an API to provide structured content to the frontend from the CMS. The frontend takes the content and decides how to display it to the user. But how the frontend shows that content comes in different forms. Content producers used to render posts in HTML because they need more control over how the content looks. But for other content types, such as employees on a team page, you should structure content. The frontend takes the structured data and renders it to the user according to the design.<\/p>\n\n\n\n<p>All headless CMSs allow you to create structured data via custom content types, but how do we do this in WordPress? Through the power of the plugin ecosystem, of course! With a few plugins, we can create a good experience for the content producer to enter structured data.&nbsp;<a target=\"_blank\" href=\"https:\/\/wpengine.com\/builders\/set-up-wordpress-as-a-headless-cms\/\" rel=\"noreferrer noopener\">The plugins that we&#8217;ll need<\/a>&nbsp;are:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>WPGraphQL<\/li><li>Custom Post Types UI<\/li><li>CPT extension for WPGraphQL<\/li><li>Advanced Custom Fields<\/li><li>ACF extension for WPGraphQL<\/li><\/ul>\n\n\n\n<p>With these plugins, we can create a UI in WordPress that looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image.png\" alt=\"Add new team member UI\" class=\"wp-image-113\"\/><\/figure>\n\n\n\n<p>Let&#8217;s walk through the steps needed to create this UI.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Create the Custom Post Type<\/h2>\n\n\n\n<p>The first thing we need to do is create a custom post type. We can do this with the CPT UI plugin. Click\u00a0<strong>CPT UI<\/strong>\u00a0in the menu. The following interface appears:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-1.png\" alt=\"\" class=\"wp-image-114\"\/><\/figure>\n\n\n\n<p>For our team members&#8217; post type, we can use &#8220;teammembers&#8221; for Post Type Slug. &#8220;Team Members&#8221; for the plural label and &#8220;Team Member&#8221; for the singular labels. Add the labels in the WP admin in the navigation bar and editor for team members.<\/p>\n\n\n\n<p>Scroll down to the bottom of the page, and you&#8217;ll see a section for WPGraphQL that looks like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-2-1024x340.png\" alt=\"\" class=\"wp-image-137\"\/><\/figure>\n\n\n\n<p>We need to tell WPGraphQL what to call the entity in the schema for plural and singular. Use this syntax for your queries. For Single Name, use &#8220;teammember&#8221;, and for Plural Name, use &#8220;teammembers&#8221;.<\/p>\n\n\n\n<p>To put the finishing touches on our editing experience, turn off Featured Image and Editor.<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Scroll up just a bit, and you&#8217;ll see a list of supported items.<\/li><li>Unselect&nbsp;<strong>Editor and Featured Image<\/strong>.<\/li><\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-3.png\" alt=\"\" class=\"wp-image-138\"\/><\/figure>\n\n\n\n<p>Now, you can click <strong>Save Post Type<\/strong>. At this point, you&#8217;ll see &#8220;Team Members&#8221; in the side navigation. If you click it and add a new team member, you&#8217;ll only see the title in the editor. We need more than a title, so let&#8217;s add custom fields to the post type.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Add Custom Fields<\/h2>\n\n\n\n<p>In the side navigation, click\u00a0<strong>Custom Fields<\/strong>. A list of field groups appears. Click\u00a0<strong>Add New<\/strong>\u00a0to start creating a new custom field group.<\/p>\n\n\n\n<p>First, we need to give the field group a name. This can be whatever will help you identify the field group. Let&#8217;s call it &#8220;Team Member Fields.&#8221; Next, we need to let ACF know where we want to apply these fields. We can do this in the Location section. The field group should not show up on every post because it is specific to team members. We only want to show the field group when the post type is equal to &#8220;Team Member.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-5.png\" alt=\"\" class=\"wp-image-140\"\/><\/figure>\n\n\n\n<p>Now that we set the location, we need to add custom fields to the field group. Click the\u00a0<strong>+ Add Field<\/strong>\u00a0button. The following screen appears:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-4-1024x830.png\" alt=\"\" class=\"wp-image-139\"\/><\/figure>\n\n\n\n<p>Let&#8217;s add a field for a description of the team member. Enter &#8220;Bio&#8221; as the Field Label, and the Field Name will be auto-populated with &#8220;Bio&#8221;. The Field Name is what we will use in our GraphQL queries.<\/p>\n\n\n\n<p>A bio will likely be more than one line, so let&#8217;s change the Field Type to &#8220;Text Area.&#8221; The Field Type determines how the user will enter the data, and the Text Area will give the user a multi-line input box.<\/p>\n\n\n\n<p>There are other options like required and instructions that you can fill out, but make sure that&nbsp;<strong>Show in GraphQL&nbsp;<\/strong>is selected. If we don&#8217;t turn that on, we won&#8217;t query the field from GraphQL.<\/p>\n\n\n\n<p>There are other options like required and instructions that you can fill out as well, but the one option we need to make sure is slected is &#8220;Show in GraphQL&#8221;. If we don&#8217;t turn that on, we won&#8217;t be able to query the field from GraphQL.<\/p>\n\n\n\n<p>We&#8217;re going to use Title for the name field. That way, when we view the list of Team Members, we will see them listed by name. You could also create a name field, but it would be redundant for the user that enters the team members.<\/p>\n\n\n\n<p>Once you&#8217;ve added all the fields you want on a team member, please scroll down to the bottom of the page and make sure you have\u00a0<strong>Show in GraphQL<\/strong>\u00a0selected and provide a\u00a0<strong>GraphQL Field Name,\u00a0<\/strong>the name used when we query team members. Let&#8217;s name it &#8220;acfTeamMembers&#8221;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-6.png\" alt=\"\" class=\"wp-image-141\"\/><\/figure>\n\n\n\n<p>Finally, scroll back to the top of the page, and click\u00a0<strong>Publish<\/strong>. Once published, click on\u00a0<strong>Team Members<\/strong>\u00a0in the navigation and add a new team member. You should see the title field and all the custom fields you added. ????<\/p>\n\n\n\n<p>Next, let&#8217;s query our custom content type with WPGraphQL!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Query Custom Content Types<\/h2>\n\n\n\n<p>At this point, you should have a custom content type for team members in WP admin. Make sure you add a few team members before going any further to see the GraphQL query results, then open the GraphiQL IDE via the top navigation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2021\/03\/image-7.png\" alt=\"\" class=\"wp-image-142\"\/><\/figure>\n\n\n\n<p>To build the query, use the schema explorer on the UI&#8217;s left side and find the &#8220;teammembers&#8221; entity. Expand it and select the fields you want to query. GraphiQL will modify the query in the editor to match what you choose. Run the query by pressing the play button above the editor. Here&#8217;s an example query, but it may be different depending on the fields you added.<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs shcb-code-table shcb-line-numbers\"><span class='shcb-loc'><span>{\n<\/span><\/span><span class='shcb-loc'><span>  teammembers {\n<\/span><\/span><span class='shcb-loc'><span>    nodes {\n<\/span><\/span><span class='shcb-loc'><span>      title\n<\/span><\/span><span class='shcb-loc'><span>      acfTeamMembers {\n<\/span><\/span><span class='shcb-loc'><span>        bio\n<\/span><\/span><span class='shcb-loc'><span>        linkedin\n<\/span><\/span><span class='shcb-loc'><span>        twitter\n<\/span><\/span><span class='shcb-loc'><span>      }\n<\/span><\/span><span class='shcb-loc'><span>    }\n<\/span><\/span><span class='shcb-loc'><span>  }\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><\/code><\/span><\/pre>\n\n\n<p>And that&#8217;s it! Now, you can query team members from anywhere you need the data and get back structured data just like you defined it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Want to do WordPress, but you don&#8217;t know PHP? No problem! With a few plugins, you can create highly customized headless sites that are absurdly fast.<\/p>\n","protected":false},"author":23,"featured_media":84,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_EventAllDay":false,"_EventTimezone":"","_EventStartDate":"","_EventEndDate":"","_EventStartDateUTC":"","_EventEndDateUTC":"","_EventShowMap":false,"_EventShowMapLink":false,"_EventURL":"","_EventCost":"","_EventCostDescription":"","_EventCurrencySymbol":"","_EventCurrencyCode":"","_EventCurrencyPosition":"","_EventDateTimeSeparator":"","_EventTimeRangeSeparator":"","_EventOrganizerID":[],"_EventVenueID":[],"_OrganizerEmail":"","_OrganizerPhone":"","_OrganizerWebsite":"","_VenueAddress":"","_VenueCity":"","_VenueCountry":"","_VenueProvince":"","_VenueState":"","_VenueZip":"","_VenuePhone":"","_VenueURL":"","_VenueStateProvince":"","_VenueLat":"","_VenueLng":"","_VenueShowMap":false,"_VenueShowMapLink":false,"footnotes":""},"categories":[23],"tags":[22],"class_list":["post-83","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-headless","tag-collection-foo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Custom Content Types in Headless WordPress - Builders<\/title>\n<meta name=\"description\" content=\"Want to do WordPress, but you don&#039;t know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Custom Content Types in Headless WordPress - Builders\" \/>\n<meta property=\"og:description\" content=\"Want to do WordPress, but you don&#039;t know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/\" \/>\n<meta property=\"og:site_name\" content=\"Builders\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-17T01:17:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-06T02:59:15+00:00\" \/>\n<meta name=\"author\" content=\"Matt Landers\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@wpebuilders\" \/>\n<meta name=\"twitter:site\" content=\"@wpebuilders\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matt Landers\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/\"},\"author\":{\"name\":\"Matt Landers\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/person\\\/fa4bfe62d9565dc74f610c5d8b4cba45\"},\"headline\":\"Custom Content Types in Headless WordPress\",\"datePublished\":\"2021-03-17T01:17:35+00:00\",\"dateModified\":\"2026-02-06T02:59:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/\"},\"wordCount\":1017,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"collection-foo\"],\"articleSection\":[\"Headless\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/\",\"name\":\"Custom Content Types in Headless WordPress - Builders\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2021-03-17T01:17:35+00:00\",\"dateModified\":\"2026-02-06T02:59:15+00:00\",\"description\":\"Want to do WordPress, but you don't know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/custom-content-types-in-headless-wordpress\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Custom Content Types in Headless WordPress\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#website\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\",\"name\":\"Builders\",\"description\":\"Reimagining the way we build with WordPress.\",\"publisher\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#organization\",\"name\":\"WP Engine\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/WP-Engine-Horizontal@2x.png\",\"contentUrl\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/WP-Engine-Horizontal@2x.png\",\"width\":348,\"height\":68,\"caption\":\"WP Engine\"},\"image\":{\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/wpebuilders\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCh1WuL54XFb9ZI6m6goFv1g\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/#\\\/schema\\\/person\\\/fa4bfe62d9565dc74f610c5d8b4cba45\",\"name\":\"Matt Landers\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g\",\"caption\":\"Matt Landers\"},\"url\":\"https:\\\/\\\/wpengine.com\\\/builders\\\/author\\\/wpdeveloperhub\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Custom Content Types in Headless WordPress - Builders","description":"Want to do WordPress, but you don't know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.","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:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/","og_locale":"en_US","og_type":"article","og_title":"Custom Content Types in Headless WordPress - Builders","og_description":"Want to do WordPress, but you don't know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.","og_url":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/","og_site_name":"Builders","article_published_time":"2021-03-17T01:17:35+00:00","article_modified_time":"2026-02-06T02:59:15+00:00","author":"Matt Landers","twitter_card":"summary_large_image","twitter_creator":"@wpebuilders","twitter_site":"@wpebuilders","twitter_misc":{"Written by":"Matt Landers","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#article","isPartOf":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/"},"author":{"name":"Matt Landers","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/person\/fa4bfe62d9565dc74f610c5d8b4cba45"},"headline":"Custom Content Types in Headless WordPress","datePublished":"2021-03-17T01:17:35+00:00","dateModified":"2026-02-06T02:59:15+00:00","mainEntityOfPage":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/"},"wordCount":1017,"commentCount":0,"publisher":{"@id":"https:\/\/wpengine.com\/builders\/#organization"},"image":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#primaryimage"},"thumbnailUrl":"","keywords":["collection-foo"],"articleSection":["Headless"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/","url":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/","name":"Custom Content Types in Headless WordPress - Builders","isPartOf":{"@id":"https:\/\/wpengine.com\/builders\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#primaryimage"},"image":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#primaryimage"},"thumbnailUrl":"","datePublished":"2021-03-17T01:17:35+00:00","dateModified":"2026-02-06T02:59:15+00:00","description":"Want to do WordPress, but you don't know PHP? No problem! With a few plugins, you can create highly customized headless sites that are fast.","breadcrumb":{"@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/wpengine.com\/builders\/custom-content-types-in-headless-wordpress\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wpengine.com\/builders\/"},{"@type":"ListItem","position":2,"name":"Custom Content Types in Headless WordPress"}]},{"@type":"WebSite","@id":"https:\/\/wpengine.com\/builders\/#website","url":"https:\/\/wpengine.com\/builders\/","name":"Builders","description":"Reimagining the way we build with WordPress.","publisher":{"@id":"https:\/\/wpengine.com\/builders\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/wpengine.com\/builders\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/wpengine.com\/builders\/#organization","name":"WP Engine","url":"https:\/\/wpengine.com\/builders\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/logo\/image\/","url":"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2024\/05\/WP-Engine-Horizontal@2x.png","contentUrl":"https:\/\/wpengine.com\/builders\/wp-content\/uploads\/2024\/05\/WP-Engine-Horizontal@2x.png","width":348,"height":68,"caption":"WP Engine"},"image":{"@id":"https:\/\/wpengine.com\/builders\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/wpebuilders","https:\/\/www.youtube.com\/channel\/UCh1WuL54XFb9ZI6m6goFv1g"]},{"@type":"Person","@id":"https:\/\/wpengine.com\/builders\/#\/schema\/person\/fa4bfe62d9565dc74f610c5d8b4cba45","name":"Matt Landers","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a89035ad50a20ca3fe6f9cf661f39e86d54562b1ccfad1544120c86099324e52?s=96&d=mm&r=g","caption":"Matt Landers"},"url":"https:\/\/wpengine.com\/builders\/author\/wpdeveloperhub\/"}]}},"_links":{"self":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts\/83","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/comments?post=83"}],"version-history":[{"count":0,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/posts\/83\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/media?parent=83"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/categories?post=83"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpengine.com\/builders\/wp-json\/wp\/v2\/tags?post=83"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}