{"id":30045,"date":"2021-09-22T17:00:39","date_gmt":"2021-09-22T15:00:39","guid":{"rendered":"https:\/\/qodeinteractive.com\/magazine\/?p=30045"},"modified":"2024-01-30T15:00:13","modified_gmt":"2024-01-30T14:00:13","slug":"create-wordpress-custom-post-type-archive","status":"publish","type":"post","link":"https:\/\/qodeinteractive.com\/magazine\/create-wordpress-custom-post-type-archive\/","title":{"rendered":"How to Create a WordPress Custom Post Types Archive"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]Custom post types are a great solution for publishing content that wouldn\u2019t be shown in its best light with a default post type. This could be because the default post type lacks some custom features or fields that would make it stand out from other pages and posts. Examples where a custom post type can really make a difference include portfolios, events, albums, properties, and many more. Fortunately, creating custom post types is easier than ever, whether you prefer using WordPress plugins or code.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Besides creating custom post types, we mustn\u2019t forget to create their archives as well. Without a custom archive template file, the content that is displayed on the archive pages is determined by your theme\u2019s default archive.php file. This means the archives for your custom posts might appear blog-like, with key features missing for each custom post item or needlessly long sidebars with unrelated content. So, if you put in the effort to make a custom post type, you shouldn\u2019t falter before making a WordPress custom post type archive to match. Using the information in this article, you\u2019ll be able to edit the archive of any custom post type and realize your planned design.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;80px&#8221;][vc_widget_sidebar sidebar_id=&#8221;new-top-picks-banner&#8221;][vc_empty_space height=&#8221;80px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2 class=\"qodef-h4\">How to create a WordPress custom post types archive<\/h2>\n<p>[\/vc_column_text][vc_column_text]Before we begin, we need to mention that this article represents a coding overview of a custom post archive page. As such, it\u2019s best suited for intermediate and advanced WordPress users. Nevertheless, we will thoroughly explain all the key points so the article will be easy to follow along. We split the main part of the article into two sections, the first explains the steps that need to be taken beforehand, and the second showcases a simple coding example of a custom post type archive. So, let\u2019s dive in.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;72px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h3 class=\"qodef-h5\">Understanding the prerequisites<\/h3>\n<p>[\/vc_column_text][vc_column_text]To be able to create a WordPress custom post type archive, you need to have several things already sorted. To start, you need to register your custom post type using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_post_type\/\" target=\"_blank\" rel=\"noopener\">register_post_type()<\/a> function. When doing so, you must add at least the<strong> $post_type<\/strong> argument, which serves as the default slug of your custom post type. You also need to set the <strong>has_archive<\/strong> argument to true, to enable an archive page for this custom post type. And, to make it all work, you should put the code into a separate function and hook it onto a suitable hook. The <strong>register_post_type()<\/strong> function description indicates that post type registration shouldn\u2019t be hooked before the <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/init\/\" target=\"_blank\" rel=\"noopener\">init<\/a> action hook.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]To illustrate all this, we\u2019re sharing a very basic example of how you can register a movie as a custom post type. You can see the code below.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">function qode_register_custom_post_type() {\r\nregister_post_type( 'movie',\r\narray(\r\n'labels' =&gt; array(\r\n'name' =&gt; esc_html__( 'Movies', 'your-translate-domain' ),\r\n'singular_name' =&gt; esc_html__( 'Movie', 'your-translate-domain' )\r\n),\r\n'public' =&gt; true,\r\n'has_archive' =&gt; true,\r\n)\r\n);\r\n}\r\nadd_action( 'init', 'qode_register_custom_post_type' );<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Within it, <strong>we set the $post_type to <em>movie<\/em>, made the custom post publicly viewable, and enabled the archive page functionality.<\/strong> Doing this made the archive page available for us to use. This page will have <em>your-website-url\/movie<\/em> (where the <em>movie<\/em> is the slug of our custom post type) as its URL.<strong> If you register a custom post type with a different slug, your URL will show the appropriate slug<\/strong> in place of the <em>movie<\/em> from our example.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]After enabling the archive page for your custom post type, you need to create the custom code that displays content on that page. To do this properly, you\u2019ll need to have some understanding of the WordPress template hierarchy. The appropriate template hierarchy for custom post archives is given below in descending order.[\/vc_column_text][vc_empty_space height=&#8221;22px&#8221;]<ul class=\"qodef-unordered-list-item qodef-toc\">\n    <li>\n\t        <div class=\"qodef-ul-title-holder\">\n            <span class=\"qodef-ul-title-content\"><strong>archive-{$post_type}.php<\/strong><\/span>        <\/div>\n            <\/li>\n<\/ul><ul class=\"qodef-unordered-list-item qodef-toc\">\n    <li>\n\t        <div class=\"qodef-ul-title-holder\">\n            <span class=\"qodef-ul-title-content\"><strong>archive.php<\/strong><\/span>        <\/div>\n            <\/li>\n<\/ul><ul class=\"qodef-unordered-list-item qodef-toc\">\n    <li>\n\t        <div class=\"qodef-ul-title-holder\">\n            <span class=\"qodef-ul-title-content\"><strong>index.php<\/strong><\/span>        <\/div>\n            <\/li>\n<\/ul>[vc_empty_space height=&#8221;28px&#8221;][vc_column_text]This means the custom post archive page you previously enabled will show the content of the <strong>archive.php<\/strong> file, or the <strong>index.php<\/strong> file if the former isn\u2019t present in your theme. If you are satisfied with the output of these pages, then you don\u2019t need to code your custom post archive. But, if you aren\u2019t satisfied, then you should create a file titled <strong>archive-{$post_type}.php<\/strong> and fully adapt the output of the custom post archive page. Please note, the <strong>{$post_type}<\/strong> part of the file name should be replaced with the slug of the custom post type you registered. Given our example above, the correct file name would be <strong>archive-movie.php.<\/strong>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Next, you should add the code that displays different parts of your custom post type into that file. If you aren\u2019t sure where to start, you can copy the content of the archive.php file of your current theme and edit the code to suit your needs. Alternatively, you can use the example code we prepared for this article or modify it to better suit your site.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]After creating the file and inserting the code into it, the last important step is knowing where to upload it for your archive page to work properly. In most cases, the newly created<strong> archive-{$post_type}.php<\/strong> file should be uploaded directly inside the directory of your currently active theme, be it parent or child. Those are the two default locations where WordPress can locate template files.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Excepting those, if you want to add the file to a subdirectory of either default location or into a site-specific plugin you created or its subdirectory, you will need additional coding. To be specific, you will need to make use of the <strong>archive_template<\/strong> filter hook to specify the exact path to the uploaded template file. This particular filter hook is a part of a larger, dynamical set of filter hooks called <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/type_template\/\" target=\"_blank\" rel=\"noopener\">{$type}-template<\/a> that allows you to specify the exact path to the template file for a given type (e.g. archive_template, category_template, home_template, single_template, etc.).[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<strong>In any case, to create a WordPress custom post type archive template, you will need to know how to use an FTP client to upload a file to the server. As such, you should brush up on your <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-use-ftp\/\">knowledge of FTP<\/a> if you are feeling rusty. Additionally, we recommend <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-manually-backup-wordpress-website\/\">making a backup of your website<\/a> as a safety precaution.<\/strong> Once you\u2019ve done that, proceed as described below.[\/vc_column_text][vc_empty_space height=&#8221;72px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h3 class=\"qodef-h5\">Creating a WordPress custom post type archive using code<\/h3>\n<p>[\/vc_column_text][vc_column_text]For this article, we prepared an example that displays the archive page for the <strong>movie<\/strong> custom post type, which we covered in <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-make-wordpress-custom-post-types\/\">our tutorial on custom post types<\/a>. If you haven\u2019t read that article already, you can look at it now for a more detailed breakdown of the steps that precede making an archive page for custom post types.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]After that, we can move on to the code we created. It represents the content of the <strong>archive-movie.php<\/strong> file, which is responsible for the display of the movie archive page\u2014the archive page with the URL our-website-url\/movie.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\r\nget_header();\r\n?&gt;\r\n   &lt;main id=\"main\" class=\"content-wrapper\"&gt;\r\n      &lt;div class=\"posts-section\"&gt;\r\n         &lt;?php if ( have_posts() ) { ?&gt;\r\n            &lt;div class=\"archived-posts\"&gt;\r\n               &lt;?php while ( have_posts() ) {\r\n                  the_post(); ?&gt;\r\n                  &lt;div class=\"archive-item\"&gt;\r\n                     &lt;?php if ( has_post_thumbnail( get_the_ID() ) ) { ?&gt;\r\n                        &lt;div class=\"top-section\"&gt;\r\n                           &lt;div class=\"movie-thumbnail\"&gt;\r\n                              &lt;a href=\"&lt;?php the_permalink(); ?&gt;\"&gt;\r\n                                 &lt;?php the_post_thumbnail( 'large' ); ?&gt;\r\n                              &lt;\/a&gt;\r\n                           &lt;\/div&gt;\r\n                        &lt;\/div&gt;\r\n                     &lt;?php } ?&gt;\r\n                     &lt;div class=\"bottom-section\"&gt;\r\n                        &lt;div class=\"movie-title\"&gt;\r\n                           &lt;a href=\"&lt;?php the_permalink(); ?&gt;\"&gt;\r\n                              &lt;h3&gt;&lt;?php the_title(); ?&gt;&lt;\/h3&gt;\r\n                           &lt;\/a&gt;\r\n                        &lt;\/div&gt;\r\n                        &lt;?php\r\n                        $excerpt       = get_the_excerpt();\r\n                        $excerpt       = _substr( $excerpt, 0, 100 );\r\n                        $short_excerpt = _substr( $excerpt, 0, strrpos( $excerpt, ' ' ) );\r\n                        if ( ! empty( $short_excerpt ) ) { ?&gt;\r\n                           &lt;div class=\"movie-excerpt\"&gt;\r\n                              &lt;p itemprop=\"description\" class=\"qodef-e-excerpt\"&gt;\r\n                                 &lt;?php echo esc_html( $short_excerpt ); ?&gt;&amp;hellip;&lt;\/p&gt;\r\n                           &lt;\/div&gt;\r\n                        &lt;?php } ?&gt;\r\n                     &lt;\/div&gt;\r\n                  &lt;\/div&gt;\r\n               &lt;?php } ?&gt;\r\n            &lt;\/div&gt;\r\n            &lt;?php wp_reset_postdata();\r\n         } else { ?&gt;\r\n            &lt;div class=\"archived-posts\"&gt;&lt;?php echo esc_html__( 'No posts matching the query were found.', 'your-translate-domain' ); ?&gt;&lt;\/div&gt;\r\n         &lt;?php } ?&gt;\r\n      &lt;\/div&gt;\r\n   &lt;\/main&gt;\r\n&lt;?php\r\nget_footer(); ?&gt;<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Please note, <strong>when you\u2019re copying this code, you\u2019ll need to remove the underscore (&#8220;_&#8221;) from both instances of &#8220;_substr&#8221; to ensure that it will work properly.<\/strong> So your code should have <em>$excerpt = substr<\/em> and<em> $short_excerpt = substr<\/em> instead.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Now, let\u2019s examine the composition of this code.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]To start, we\u2019ll examine it in a more simplified form. As you can see below, we displayed the header and footer using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_header\/\" target=\"_blank\" rel=\"noopener\">get_header()<\/a> and <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_footer\/\" target=\"_blank\" rel=\"noopener\">get_footer()<\/a> functions that call the respective footer and header templates. Then, in the main part of the page, a simple <a href=\"https:\/\/developer.wordpress.org\/themes\/basics\/the-loop\/\" target=\"_blank\" rel=\"noopener\">WordPress Loop<\/a> is displayed. Finally, if there are no movies that can be shown (for example, they haven\u2019t been published), a message stating <em>No movies matching the query were found.<\/em> will appear.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;?php\r\nget_header();\r\n?&gt;\r\n&lt;main id=\"main\" class=\"content-wrapper\"&gt;\r\n&lt;div class=\"posts-section\"&gt;\r\n&lt;?php if ( have_posts() ) { ?&gt;\r\n&lt;div class=\"archived-posts\"&gt;\r\n&lt;?php while ( have_posts() ) {\r\nthe_post(); ?&gt;\r\n&lt;!-- Some code here--&gt;\r\n&lt;?php } ?&gt;\r\n&lt;\/div&gt;\r\n&lt;?php wp_reset_postdata();\r\n} else { ?&gt;\r\n&lt;div class=\"archived-posts\"&gt;&lt;?php echo esc_html__( 'No movies matching the query were found.', 'your-translate-domain' ); ?&gt;&lt;\/div&gt;\r\n&lt;?php } ?&gt;\r\n&lt;\/div&gt;\r\n&lt;\/main&gt;\r\n&lt;?php\r\nget_footer(); ?&gt;<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]As for the main part of the code, it displays the appropriate movie information for each published movie item. More precisely, <strong>using the code shown below, we displayed the movie\u2019s featured image, title, and a shortened excerpt.<\/strong> Furthermore, both the movie title and featured image are linked to the movie\u2019s page. The featured image is displayed in size \u2018large\u2019, which is one of the <a href=\"https:\/\/qodeinteractive.com\/magazine\/wordpress-add-image-size\/\">image sizes<\/a> that are registered in WordPress by default. Finally, the excerpt is shown up to the last whole word before the 100 character limit and it ends with the ellipsis symbol(\u2026). Needless to say, <strong>these three items will be shown only if you inserted them<\/strong>. You would do that using the WordPress interface for each movie item.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">&lt;div class=\"archive-item\"&gt;\r\n&lt;?php if ( has_post_thumbnail( get_the_ID() ) ) { ?&gt;\r\n&lt;div class=\"top-section\"&gt;\r\n&lt;div class=\"movie-thumbnail\"&gt;\r\n&lt;a href=\"&lt;?php the_permalink(); ?&gt;\"&gt;\r\n&lt;?php the_post_thumbnail( 'large' ); ?&gt;\r\n&lt;\/a&gt;\r\n&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n&lt;?php } ?&gt;\r\n&lt;div class=\"bottom-section\"&gt;\r\n&lt;div class=\"movie-title\"&gt;\r\n&lt;a href=\"&lt;?php the_permalink(); ?&gt;\"&gt;\r\n&lt;h3&gt;&lt;?php the_title(); ?&gt;&lt;\/h3&gt;\r\n&lt;\/a&gt;\r\n&lt;\/div&gt;\r\n&lt;?php\r\n$excerpt = get_the_excerpt();\r\n$excerpt = _substr( $excerpt, 0, 100 );\r\n$short_excerpt = _substr( $excerpt, 0, strrpos( $excerpt, ' ' ) );\r\nif ( ! empty( $short_excerpt ) ) { ?&gt;\r\n&lt;div class=\"movie-excerpt\"&gt;\r\n&lt;p itemprop=\"description\" class=\"qodef-e-excerpt\"&gt;\r\n&lt;?php echo esc_html( $short_excerpt ); ?&gt;&amp;hellip;&lt;\/p&gt;\r\n&lt;\/div&gt;\r\n&lt;?php } ?&gt;\r\n&lt;\/div&gt;\r\n&lt;\/div&gt;<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]This code represents a simple, yet helpful, example. You can use it directly or improve on it if needed. Once you create a suitable code, the <strong>archive-{$post_type}.php<\/strong> file (in our case the <strong>archive-movie.php<\/strong> file) with the code should be uploaded to the server via FTP. Whether you upload it to the directory of the theme you are currently using, or one of the other locations we discussed in the previous section is up to you. After that, you should review the results.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]It is likely that the resulting display of the archive page won\u2019t fit your site perfectly. To make it more visually pleasing and better suited to the overall design, you will need to add some CSS code for stylization purposes. However, this code is created on a case-by-case basis as it depends on the stylization rules that are already present on your site thanks to the theme you are using. As such, you will need to create the appropriate CSS code on your own.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]To help you do this, we will share the CSS code we created for this article. It was created for our website, which uses <a href=\"https:\/\/lekker.qodeinteractive.com\/\" target=\"_blank\" rel=\"noopener\">the Lekker theme<\/a>, so it aims to match that particular style. So, you shouldn\u2019t copy this code for use without changing it beforehand.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">.archived-posts {\r\ndisplay: -webkit-box;\r\ndisplay: -ms-flexbox;\r\ndisplay: flex;\r\n-webkit-box-orient: horizontal;\r\n-webkit-box-direction: normal;\r\n-ms-flex-direction: row;\r\nflex-direction: row;\r\n-ms-flex-wrap: wrap;\r\nflex-wrap: wrap;\r\nmargin: 0 -10px;\r\n}\r\n.archive-item {\r\ndisplay: -webkit-box;\r\ndisplay: -ms-flexbox;\r\ndisplay: flex;\r\n-webkit-box-orient: vertical;\r\n-webkit-box-direction: normal;\r\n-ms-flex-direction: column;\r\nflex-direction: column;\r\n-ms-flex-preferred-size: 100%;\r\nflex-basis: 100%;\r\npadding: 0px 10px 30px;\r\n}\r\n@media (min-width: 1025px) {\r\n.archive-item{\r\n-webkit-box-flex: 1;\r\n-ms-flex: 1 1 33%;\r\nflex: 1 1 33%;\r\n}\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]When you create the CSS code that would suit your website, you need to know where to safely place it. For a wide range of WordPress users,<strong> the appropriate location would be inside the Appearance &gt; Customize &gt; Additional CSS section<\/strong>, as it is the default spot for inserting website-related CSS. However, <strong>more advanced WordPress users can opt to put the CSS into a separate file, upload it to the server, and enqueue it<\/strong> using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_enqueue_style\/\" target=\"_blank\" rel=\"noopener\">wp_enqueue_style()<\/a> function. You can find more details on how to do that in <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-enqueue-scripts-wordpress\/\">our article on enqueueing custom scripts and styles<\/a>.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Finally, you should now have a custom post archive page that will be perfectly adjusted to your needs. In the case of our example, you can see how the movie archive page turned out on the screenshot below.[\/vc_column_text][vc_empty_space height=&#8221;50px&#8221;]<div class=\"qodef-single-image-holder   qodef-has-border \">\n    <div class=\"qodef-si-inner\" >\n                                    <img loading=\"lazy\" decoding=\"async\" width=\"969\" height=\"536\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/09\/Archive-Result.jpg\" class=\"attachment-full size-full\" alt=\"Archive Result\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/09\/Archive-Result.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/09\/Archive-Result-300x166.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/09\/Archive-Result-768x425.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/09\/Archive-Result-620x343.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;78px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2 class=\"qodef-h4\">Final Thoughts<\/h2>\n<p>[\/vc_column_text][vc_column_text]In this article, we discussed everything you need to know to create a WordPress custom post type archive page using code. That includes registering the custom post type with appropriate arguments that enable an archive page, creating the appropriately named template file with the coding example we supplied as a starting point, and uploading the file into an appropriate location on the server. Apart from that, you will also need to insert the appropriate information for each custom post item that you want to be shown on the archive page. Finally, you will need to adjust the stylization of your new custom post type archive page so it matches the rest of your site. Given everything we covered, we are confident that you will be able to use these instructions, regardless of what kind of custom post type you create, to make an archive page for yourself. Finally, you can bookmark this article in case you need to refresh your knowledge at any point in the future.<br \/>\n[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>A custom post type archive is the ideal way to display your custom post type content and make it shine. In this tutorial, we&#8217;ll show you how to do that.<\/p>\n","protected":false},"author":11229,"featured_media":30153,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[135,157,21,4,13],"class_list":["post-30045","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-customization","tag-development","tag-php","tag-tips","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/posts\/30045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/users\/11229"}],"replies":[{"embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/comments?post=30045"}],"version-history":[{"count":0,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/posts\/30045\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/media\/30153"}],"wp:attachment":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/media?parent=30045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/categories?post=30045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/tags?post=30045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}