{"id":27007,"date":"2021-07-17T17:00:52","date_gmt":"2021-07-17T15:00:52","guid":{"rendered":"https:\/\/qodeinteractive.com\/magazine\/?p=27007"},"modified":"2022-01-18T11:15:47","modified_gmt":"2022-01-18T10:15:47","slug":"set-wordpress-default-post-thumbnail","status":"publish","type":"post","link":"https:\/\/qodeinteractive.com\/magazine\/set-wordpress-default-post-thumbnail\/","title":{"rendered":"How to Set a Default Post Thumbnail Image in WordPress"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><p>[vc_row][vc_column][vc_column_text]Images play a vital role in every WordPress website. They grab visitors\u2019 attention, encourage social media sharing, and add vibrancy to your content by breaking up chunks of text. Website images can make or break a site, and it is up to the webmaster to ensure that the most suited images are being used.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Since there is a lot that could be said about using images on WordPress websites, we will focus only on a small part of that larger topic. More precisely, we will talk about setting up and using post thumbnail images. These images, also called post featured images, can substantially boost the quality of your blog, make it more appealing to readers, and give it a professional look that\u2019s particularly handy for social sharing.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]However, featured images aren\u2019t added to posts by default, so forgetting to add them happens easily. This can lead you to miss out on all the benefits that they could bring to your website. There are several approaches you can take to avoid this problem. In this article, we will show you one that we believe to be the most efficient\u2014setting up a WordPress default post thumbnail image. We will also take a look at why this particular approach is so helpful. If you\u2019d like to skip to any specific part of the article, just click on one of the links below:<br \/>\n[\/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\"><a href=\"#why-set-wordpress-default-post-thumbnail-image\">Why you should set a WordPress default post thumbnail image<\/a><\/span>        <\/div>\n            <\/li>\n<\/ul>[vc_empty_space height=&#8221;5px&#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\"><a href=\"#set-default-post-thumbnail-image-using-wordpress-plugin\">Set a default post thumbnail image using a WordPress plugin<\/a><\/span>        <\/div>\n            <\/li>\n<\/ul>[vc_empty_space height=&#8221;5px&#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\"><a href=\"#set-default-post-thumbnail-image-using-custom-code\">Set a default post thumbnail image using custom code<\/a><\/span>        <\/div>\n            <\/li>\n<\/ul>[vc_empty_space height=&#8221;68px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h2 class=\"qodef-h4\"><a id=\"why-set-wordpress-default-post-thumbnail-image\"><\/a>Why you should set a WordPress default post thumbnail image<\/h2>\n<p>[\/vc_column_text][vc_column_text]Post thumbnails are one of the key ways of attracting new readers or keeping current ones on your website. However, it\u2019s easy to overlook them as they aren\u2019t one of the images that are inserted in the post content directly while it\u2019s being written. This is particularly likely if you\u2019re writing a WordPress post in a hurry.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]On the other hand, you could also choose not to use a featured image if you aren\u2019t confident in its look, or how it appears in comparison to your brand. However, by omitting a featured image you could be doing a disservice to your page design, especially if your website has various sections that set out a selection of posts. For example, pages that contain a selection of posts in a grid layout can seem unprofessional if they don\u2019t all, consistently, include WordPress default post thumbnails.<br \/>\n[\/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=\"647\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Initial-Page-View.jpg\" class=\"attachment-full size-full\" alt=\"Initial Page View\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Initial-Page-View.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Initial-Page-View-300x200.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Initial-Page-View-768x513.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Initial-Page-View-620x414.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]Pages with a similar grid layout to the one shown above can be created using specific page templates, shortcodes, or simply by adding a specific category or tag page. And similar issues, if you choose to omit images, could appear in sidebars that use widgets to display posts.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Adding a fallback featured image to all posts is one way to solve this problem, and it\u2019s guaranteed to make your website visually appealing. By doing so, you can improve the look of your posts when shared on social media, as the same image will be used for social sharing by default. The social sharing aspect of this problem can also be solved using plugins like Yoast SEO, which is well-known and quite popular within the WordPress community.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Besides all the reasons for including a default post thumbnail image that we listed above, having one could be useful for testing websites or websites under development. Adding post thumbnails can help you test if what you\u2019ve made matches the expected design of your website.<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 set a default post thumbnail image in WordPress<\/h2>\n<p>[\/vc_column_text][vc_column_text]Now that you have a better understanding of why setting a default post thumbnail can be beneficial for your WordPress website, let\u2019s consider the ways of implementing it. As with most of our guides, we will be taking a look at two possible methods\u2014using a WordPress plugin or custom code. Both are suitable for different types of WordPress users, so it\u2019s up to you to choose which one you wish to use.<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\"><a id=\"set-default-post-thumbnail-image-using-wordpress-plugin\"><\/a>Using a WordPress plugin<\/h3>\n<p>[\/vc_column_text][vc_column_text]The first method of setting a default post thumbnail image is to look for a suitable WordPress plugin that enables this functionality. This is the more beginner-friendly method. It requires <strong>little to no prior coding knowledge<\/strong>, which makes it the preferred method of most WordPress users. Since there are a lot of quality WordPress plugins, you are likely to find a plugin for any purpose you can think of, including setting a default post thumbnail image.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]And, don\u2019t forget that there are other approaches to solving the problem of missing featured images. Those include making the first image within a post the fallback featured image, or making it so that a post has to have a featured image before it can be published. There are WordPress plugins that offer these functionalities, so you can look for them as possible alternatives if this approach suits you. We opted to focus on the default post thumbnail image functionality. The plugin we picked to help us with this is called Default Featured Image.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The <a href=\"https:\/\/wordpress.org\/plugins\/default-featured-image\/\" target=\"_blank\" rel=\"noopener\">Default Featured Image<\/a> plugin is a simple, lightweight plugin that was created specifically for adding default featured images to your site. The functionality for the default post thumbnail is achieved using an option created by the plugin, which you can find in the Settings &gt; Media section.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]This plugin also allows for additional modifications thanks to the filter hooks that are included in the code\u2014<strong>dfi_thumbnail_id<\/strong> and <strong>dfi_thumbnail_html<\/strong>. Meaning, more advanced WordPress users can write custom functions and \u201chook\u201d onto the suggested filter hooks to further alter the plugin\u2019s behavior. If this is something you\u2019d be interested in, reviewing the <a href=\"https:\/\/wordpress.org\/plugins\/default-featured-image\/#faq-header\" target=\"_blank\" rel=\"noopener\">plugin\u2019s FAQ section<\/a> is a good place to start, as it contains code examples of how these filters could be used.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]For this article, we opted to use only the default plugin behavior, to keep it accessible to all our readers. In the sections below, we will show you how to choose an image that will serve as a default fallback thumbnail image for all posts.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]After <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-install-a-wordpress-plugin\/\">installing the plugin<\/a>,<strong> navigate to the Settings &gt; Media section<\/strong> and <strong>locate the <em>Default featured image<\/em> option.<\/strong> <strong>Click on the<em> Select default featured image<\/em> button<\/strong> next to it; this will open the media dialog window.[\/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=\"525\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Select-Default-Featured-Image.jpg\" class=\"attachment-full size-full\" alt=\"Select Default Featured Image\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Select-Default-Featured-Image.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Select-Default-Featured-Image-300x163.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Select-Default-Featured-Image-768x416.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Select-Default-Featured-Image-620x336.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]Once you are within it, you will be placed within the <em>Media Library<\/em> tab, where you can choose the image you want to use as the default WordPress post featured image. Alternatively, you can switch to the <em>Upload files<\/em> tab, where you can upload a new image. In either case, when you <strong>pick a suitable image, click on it<\/strong> to select it, and <strong>press the <em>Set default featured image<\/em> button<\/strong> below to confirm your choice.[\/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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library.jpg\" class=\"attachment-full size-full\" alt=\"Media Library\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;60px&#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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-Set-Default-Featured-Image.jpg\" class=\"attachment-full size-full\" alt=\"Media Library Set Default Featured Image\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-Set-Default-Featured-Image.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-Set-Default-Featured-Image-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-Set-Default-Featured-Image-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Library-Set-Default-Featured-Image-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]Once you\u2019ve done that, you will see a small preview of the selected image next to the option. There will also be two buttons next to it. One is the <em>Select default featured image<\/em> button, which is used if you want to select a different image instead. The other is the <em>Don\u2019t use a default featured image<\/em> button, which is used if you want to remove the previously selected default featured image without picking a new one.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]With that being said, let\u2019s continue. Having chosen the default featured image, <strong>click on the <em>Save Changes<\/em> button<\/strong> to apply this setting to your website.[\/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=\"593\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Media.jpg\" class=\"attachment-full size-full\" alt=\"Settings Media\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Media.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Media-300x184.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Media-768x470.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Media-620x379.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]The default thumbnail image you picked should appear in all the same places where the featured image of a given post would appear. Depending on the theme you are using and how it was coded, this could include the page of a post, the pages of post taxonomies (categories and tags), any pages that contain post-related shortcodes, pages that use any post-related page template, or pages that have sidebars containing post-related widgets.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]In this article, we will use a page that contains a blog list shortcode to test the results of both of the methods we\u2019ll be covering. The result for this first method is given below; the posts showing the default featured image are framed in red.<br \/>\n[\/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=\"650\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Featured-Images-Preview.jpg\" class=\"attachment-full size-full\" alt=\"Default Featured Images Preview\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Featured-Images-Preview.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Featured-Images-Preview-300x201.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Featured-Images-Preview-768x515.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Featured-Images-Preview-620x416.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;82px&#8221;][\/vc_column][\/vc_row][vc_row][vc_column][vc_column_text]<\/p>\n<h3 class=\"qodef-h5\"><a id=\"set-default-post-thumbnail-image-using-custom-code\"><\/a>Using custom code<\/h3>\n<p>[\/vc_column_text][vc_column_text]Another way of implementing the default post thumbnail functionality is with custom code. This approach is better suited for more advanced WordPress users, as it requires a significant amount of <strong>prior knowledge of both WordPress in particular and coding in general<\/strong>. Nevertheless, we will take you step-by-step through the process of adding the default post thumbnail functionality, while using the custom code we created for this purpose.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]As you might have seen from our other coding guides, the custom code you create should be added <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-use-ftp\/\">via FTP<\/a> either in the functions.php file of your child theme or inside a <a href=\"https:\/\/qodeinteractive.com\/magazine\/wordpress-site-specific-plugin\/\">site-specific plugin<\/a>. Before we delve into what the code does and how it should be used, we strongly suggest <a href=\"https:\/\/qodeinteractive.com\/magazine\/how-to-manually-backup-wordpress-website\/\">making a backup of your site<\/a> before going any further. The backup will serve as a simple, and very effective safety precaution should you experience any issues with your website after adding the code to either of the two suggested locations.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The code that we included below enables the creation and proper functioning of a new option in the<strong> Settings &gt; General section<\/strong>. That option enables you to insert the image ID of the image you wish to set as the default post thumbnail. You can see the full code below.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">if ( ! class_exists( 'DefaultThumbnailID' ) ) {\r\nclass DefaultThumbnailID {\r\nprivate static $instance;\r\npublic function __construct() {\r\n\/\/ Add the option field to the General page.\r\nadd_action( 'admin_init', array( &amp;$this, 'show_default_thumbnail_id_option' ) );\r\n\/\/ Check if the default featured image exists.\r\nadd_filter( 'has_post_thumbnail', array( &amp;$this, 'set_has_post_thumbnail_value' ) );\r\n\/\/ Display the default featured image.\r\nadd_filter( 'post_thumbnail_html', array( &amp;$this, 'set_default_post_thumbnail_image' ), 10, 4 );\r\n}\r\npublic static function get_instance() {\r\nif ( is_null( self::$instance ) ) {\r\nself::$instance = new self();\r\n}\r\nreturn self::$instance;\r\n}\r\npublic function show_default_thumbnail_id_option() {\r\nregister_setting(\r\n'general', \/\/ General page\r\n'_default_thumbnail_id' \/\/ Option name\r\n);\r\nadd_settings_field(\r\n'default_thumbnail_id', \/\/ ID\r\n__( 'Default thumbnail ID', 'text-domain' ), \/\/ Option title\r\narray( &amp;$this, 'display_input_field' ), \/\/ Display callback\r\n'general', \/\/ General page\r\n'default' \/\/ General page section\r\n);\r\n}\r\npublic function display_input_field() {\r\n$value = get_option( '_default_thumbnail_id' );\r\n$value = wp_attachment_is_image( $value ) ? $value : '';\r\n?&gt;\r\n&lt;input id=\"default_thumbnail_id\" value=\"&lt;?php echo esc_attr( $value ); ?&gt;\" name=\"_default_thumbnail_id\"\/&gt;\r\n&lt;?php\r\n}\r\nfunction set_has_post_thumbnail_value( $has_image ) {\r\n$default_thumbnail_id = get_option( '_default_thumbnail_id' );\r\nif ( ! empty( $default_thumbnail_id ) ) {\r\n$has_image = true;\r\n}\r\nreturn $has_image;\r\n}\r\nfunction set_default_post_thumbnail_image( $image, $post_id, $post_thumbnail_id, $size ) {\r\n$default_thumbnail_id = get_option( '_default_thumbnail_id' );\r\nif ( empty( $image ) &amp;&amp; ! empty( $default_thumbnail_id ) ) {\r\n$image = wp_get_attachment_image( $default_thumbnail_id, $size );\r\n}\r\nreturn $image;\r\n}\r\n}\r\n\/\/ Instantiate the class object.\r\nDefaultThumbnailID::get_instance();\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Let\u2019s explain a bit further. To help us do that, we should consider the code in a slightly simplified form.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">if ( ! class_exists( 'DefaultThumbnailID' ) ) {\r\nclass DefaultThumbnailID {\r\nprivate static $instance;\r\npublic function __construct() {\r\n\/\/ Some code here\r\n}\r\npublic static function get_instance() {\r\n\/\/ Some code here\r\n}\r\npublic function show_default_thumbnail_id_option() {\r\n\/\/ Some code here\r\n}\r\npublic function display_input_field() {\r\n\/\/ Some code here\r\n}\r\nfunction set_has_post_thumbnail_value( $has_image ) {\r\n\/\/ Some code here\r\n}\r\nfunction set_default_post_thumbnail_image( $image, $post_id, $post_thumbnail_id, $size ) {\r\n\/\/ Some code here\r\n}\r\n}\r\n\/\/ Instantiate the class object.\r\nDefaultThumbnailID::get_instance();\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]By looking at the code this way, it is easier to see that it represents a custom PHP class we created called <strong>DefaultThumbnailID<\/strong>, which contains one property called <strong>$instance<\/strong> and six methods. An instance of the class object is created at the end of the code and the whole code is wrapped inside an <a href=\"https:\/\/www.php.net\/manual\/en\/control-structures.if.php\" target=\"_blank\" rel=\"noopener\">if statement<\/a>. This means that <strong>the code is only executed if a class with that exact name doesn\u2019t exist already<\/strong>. Now, let\u2019s delve deeper into the code by explaining each of the methods belonging to this class.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The <strong>__construct()<\/strong> method is the <a href=\"https:\/\/www.php.net\/manual\/en\/language.oop5.decon.php\" target=\"_blank\" rel=\"noopener\">constructor method<\/a> for this class. Even though it might not seem so at first glance, <strong>the three lines of code given to this method are key for the default featured image functionality working properly<\/strong>. Those lines of code represent one use of the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_action\/\" target=\"_blank\" rel=\"noopener\">add_action()<\/a> function and two uses of the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_filter\/\" target=\"_blank\" rel=\"noopener\">add_filter()<\/a> function.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]More specifically, the<strong> show_default_thumbnail_id_option()<\/strong> method is hooked onto the <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/admin_init\/\" target=\"_blank\" rel=\"noopener\"><strong>admin_init<\/strong><\/a> action hook, the <strong>set_has_post_thumbnail_value()<\/strong> method is hooked onto the <a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/has_post_thumbnail\/\" target=\"_blank\" rel=\"noopener\"><strong>has_post_thumbnail<\/strong><\/a> filter hook and the <strong>set_default_post_thumbnail_image()<\/strong> method is hooked onto the <strong><a href=\"https:\/\/developer.wordpress.org\/reference\/hooks\/post_thumbnail_html\/\" target=\"_blank\" rel=\"noopener\">post_thumbnail_html<\/a><\/strong> filter hook.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public function __construct() {\r\n\/\/ Add the option field to the General page.\r\nadd_action( 'admin_init', array( &amp;$this, 'show_default_thumbnail_id_option' ) );\r\n\/\/ Check if the default featured image exists.\r\nadd_filter( 'has_post_thumbnail', array( &amp;$this, 'set_has_post_thumbnail_value' ) );\r\n\/\/ Display the default featured image.\r\nadd_filter( 'post_thumbnail_html', array( &amp;$this, 'set_default_post_thumbnail_image' ), 10, 4 );\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]If you aren\u2019t familiar with them already, <a href=\"https:\/\/developer.wordpress.org\/plugins\/hooks\/\" target=\"_blank\" rel=\"noopener\">hooks<\/a> are small snippets that developers leave inside their code. They act as placeholders for inserting additional code. This code can serve to unlock new features, in the case of action hooks, or alter existing ones, in the case of filter hooks. To use a hook, you need to write a custom function, called a callback, and then hook it onto the appropriate hook. In the end, it works as if that code was placed directly inside the template file, in the exact location where the hook placeholder is found.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Even though this method might seem strange, it has a huge upside\u2014any additional code you create this way can be added inside the functions.php file of your child theme or a site-specific plugin. This lets you easily manage all your website modifications from one single place. And, more importantly, you won\u2019t lose any of those modifications after updating your theme, which wouldn\u2019t be the case if you kept your code directly inside a template file. All this makes using hooks the most efficient way of adding custom modifications to a WordPress website, and the recommended way for any advanced WordPress user.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]In this particular case, we hooked our code onto three hooks which are part of the WordPress Core. But, depending on the case, you can also use plugin- or theme-specific hooks. Now, let\u2019s explore the remaining five methods.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The <strong>get_instance()<\/strong> method serves to create an instance of our custom class object\u2014<strong>DefaultThumbnailID<\/strong>. And that only happens if the $instance property of our class is NULL, i.e. if there\u2019s no variable assigned to it.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public static function get_instance() {\r\nif ( is_null( self::$instance ) ) {\r\nself::$instance = new self();\r\n}\r\nreturn self::$instance;\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The <strong>show_default_thumbnail_id_option()<\/strong> method is responsible for creating the default featured image option and displaying it in <strong>Settings &gt; General<\/strong>. First, the option is registered using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/register_setting\/\" target=\"_blank\" rel=\"noopener\"><strong>register_setting()<\/strong><\/a> function. We only specified two parameters\u2014the <strong>general<\/strong> page (meaning Settings &gt; General) and the name of the option, <strong>_default_thumbnail_id<\/strong>, which will be used in all remaining methods. We also added the option field using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/add_settings_field\/\" target=\"_blank\" rel=\"noopener\"><strong>add_settings_field()<\/strong><\/a> function.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Of the parameters we used, we have<strong> default_thumbnail_id<\/strong> as the option ID, <strong>Default thumbnail ID<\/strong> as the title, and we specified it is<strong> located in the Settings &gt; General section<\/strong>, but not within a specific subsection. And within the call of the <strong>add_settings_field()<\/strong> function, we referenced the <strong>display_input_field()<\/strong> method as the one responsible for the HTML code that creates the option input field.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public function show_default_thumbnail_id_option() {\r\nregister_setting(\r\n'general', \/\/ General page\r\n'_default_thumbnail_id' \/\/ option name\r\n);\r\nadd_settings_field(\r\n'default_thumbnail_id', \/\/ ID\r\n__( 'Default thumbnail ID', 'text-domain' ), \/\/ Option title\r\narray( &amp;$this, 'display_input_field' ), \/\/ Display callback\r\n'general', \/\/ General page\r\n'default' \/\/ General page section\r\n);\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]As we mentioned above, the <strong>display_input_field()<\/strong> method creates the HTML code behind the input field. This is done by first getting the value of the previously registered option using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/get_option\/\" target=\"_blank\" rel=\"noopener\"><strong>get_option()<\/strong><\/a> function and then storing it inside the $value variable. Additionally, the value is being cross-referenced using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_attachment_is_image\/\" target=\"_blank\" rel=\"noopener\"><strong>wp_attachment_is_image()<\/strong><\/a> function. If the inserted value isn\u2019t a valid image ID, then the<strong> $value<\/strong> variable would be set to an empty string. Then, the $value variable is <a href=\"https:\/\/developer.wordpress.org\/themes\/theme-security\/data-sanitization-escaping\/\" target=\"_blank\" rel=\"noopener\">sanitized<\/a> using the <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/esc_attr\/\" target=\"_blank\" rel=\"noopener\"><strong>esc_attr()<\/strong><\/a> function and placed as the input field\u2019s value whose HTML code is also included inside the method.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<strong>Provided you\u2019ve inserted a valid image ID, the same ID will be shown after saving the option<\/strong>. This involves pressing <strong>the <em>Save Changes<\/em> button at the bottom of the Settings &gt; General section<\/strong>. But,<strong> if you insert an invalid entry, the input field will appear blank again after you\u2019ve saved it<\/strong>. Simply put, this method is responsible for displaying the option and validating the output in the process.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">public function display_input_field() {\r\n$value = get_option( '_default_thumbnail_id' );\r\n$value = wp_attachment_is_image ( $value ) ? $value : '';\r\n?&gt;\r\n&lt;input id=\"default_thumbnail_id\" value=\"&lt;?php echo esc_attr( $value ); ?&gt;\" name=\"_default_thumbnail_id\"\/&gt;\r\n&lt;?php\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]The remaining two methods are tied together. The<strong> set_has_post_thumbnail_value()<\/strong> method signals that a WordPress post has a valid default featured image to fall back on as long as the previously created option isn\u2019t empty. Since we already added a conditional which checks if the inserted value is a valid image ID, no additional conditional statements are required.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">function set_has_post_thumbnail_value( $has_image ) {\r\n$default_thumbnail_id = get_option( '_default_thumbnail_id' );\r\nif ( ! empty( $default_thumbnail_id ) ) {\r\n$has_image = true;\r\n}\r\nreturn $has_image;\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Finally, the<strong> set_default_post_thumbnail_image()<\/strong> method is responsible for displaying the WordPress default post thumbnail that corresponds to the inserted ID. And, that is only if a post has no featured image and if the default image ID field isn\u2019t empty. The same point about not needing other additional validation checks applies here, as well.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">function set_default_post_thumbnail_image( $image, $post_id, $post_thumbnail_id, $size ) {\r\n$default_thumbnail_id = get_option( '_default_thumbnail_id' );\r\nif ( empty( $image ) &amp;&amp; ! empty( $default_thumbnail_id ) ) {\r\n$image = wp_get_attachment_image( $default_thumbnail_id, $size );\r\n}\r\nreturn $image;\r\n}<\/pre>\n<p>[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]Since we\u2019ve covered what the code does, let\u2019s look into how you can use this newly created option and what the expected result is.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]For starters, <strong>navigate to Settings &gt; General<\/strong> and <strong>look for the option with the title <em>Default thumbnail ID<\/em><\/strong>. In the input field next to the option\u2019s name, <strong>insert the ID of an image<\/strong> you wish to use as the default thumbnail.[\/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=\"589\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID.jpg\" class=\"attachment-full size-full\" alt=\"Default Thumbnail ID\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-300x182.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-768x467.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-620x377.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]Make sure to insert a valid image ID into this input field. If you insert an invalid entry (either an invalid image ID or something else), you will only see the message <em>Settings<\/em> <em>saved<\/em> near the top of your screen, but your entry won\u2019t be saved or shown in the input field next to the option. This interaction is due to how we coded the <strong>display_input_field()<\/strong> method.[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]If you don\u2019t know <a href=\"https:\/\/qodeinteractive.com\/magazine\/find-post-page-category-comment-uder-id-wordpress\/\">how to find the ID<\/a> of the image you want to use for the WordPress default post thumbnail and featured image, we will show you below. To locate the ID of your chosen image, <strong>navigate to Media &gt; Library<\/strong> and <strong>click on that image.<\/strong>[\/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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Labrary-Select-Image.jpg\" class=\"attachment-full size-full\" alt=\"Media Labrary Select Image\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Labrary-Select-Image.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Labrary-Select-Image-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Labrary-Select-Image-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Media-Labrary-Select-Image-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]<strong>If your Media Library display is set to grid, click once on the image to open its <em>Attachment details<\/em> screen. With this screen opened, we need to look at the URL in the address bar. You\u2019ll find the image ID number after the <em>?item=<\/em> part of the URL.<\/strong>[\/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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID.jpg\" class=\"attachment-full size-full\" alt=\"Image ID\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]<strong>If your Media Library display was set to list, you can open the image edit screen by clicking on the image. Its ID number will be located within the URL, after the <em>?post= <\/em>part.<\/strong>[\/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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-2.jpg\" class=\"attachment-full size-full\" alt=\"Image ID\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-2.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-2-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-2-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Image-ID-2-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]As you can see on the screenshot above, the image ID in our example is 560. <strong>Since it is a valid image ID, it won\u2019t be deleted after we insert it into the input field and press the <em>Save Changes<\/em> button.<\/strong>[\/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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Saved.jpg\" class=\"attachment-full size-full\" alt=\"Settings Saved\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Saved.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Saved-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Saved-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Settings-Saved-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;60px&#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=\"518\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Insert-Default-Thumbnail-ID.jpg\" class=\"attachment-full size-full\" alt=\"Insert Default Thumbnail ID\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Insert-Default-Thumbnail-ID.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Insert-Default-Thumbnail-ID-300x160.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Insert-Default-Thumbnail-ID-768x411.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Insert-Default-Thumbnail-ID-620x331.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]<strong>After properly inserting the image ID, the only thing that remains is to test if the functionality works as intended.<\/strong> We used the same page with a blog list display to test the desired functionality. After inserting the image ID, we got the following result, which you can see on the screenshot below. The posts that use the default thumbnail image are framed in red on the screenshot.[\/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=\"647\" src=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-Result.jpg\" class=\"attachment-full size-full\" alt=\"Default Thumbnail ID Result\" srcset=\"https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-Result.jpg 969w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-Result-300x200.jpg 300w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-Result-768x513.jpg 768w, https:\/\/qodeinteractive.com\/magazine\/wp-content\/uploads\/2021\/07\/Default-Thumbnail-ID-Result-620x414.jpg 620w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/>                        <\/div>\n<\/div>[vc_empty_space height=&#8221;38px&#8221;][vc_column_text]You should get a similar output on your end if you use the custom code we supplied in this article without any modifications.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;68px&#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]A post\u2019s thumbnail and featured images are often what catches the reader\u2019s eyes in the first place and what inspires them to stay a while longer on your website. This is why it\u2019s so important to ensure that WordPress default post thumbnails are displayed properly. Among other things, this involves setting up a default post thumbnail for posts that might not have a featured image yet, or where a different one wouldn\u2019t be suitable. This will make the structure of your blog seem cohesive and more professional.<br \/>\n[\/vc_column_text][vc_empty_space height=&#8221;28px&#8221;][vc_column_text]In this article, we talked about implementing the WordPress default post thumbnail image feature with a suitable plugin or by using custom code. We covered both methods in detail to make it easier for WordPress users of all skill levels to pick the one they prefer and implement it with ease.<br \/>\n[\/vc_column_text][\/vc_column][\/vc_row]<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>Learn how to set a WordPress default post thumbnail image to your posts and provide readers with a glimpse into what&#8217;s expecting them in the content.<\/p>\n","protected":false},"author":11229,"featured_media":27036,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[27,4,13],"class_list":["post-27007","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-content","tag-tips","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/posts\/27007","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=27007"}],"version-history":[{"count":0,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/posts\/27007\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/media\/27036"}],"wp:attachment":[{"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/media?parent=27007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/categories?post=27007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qodeinteractive.com\/magazine\/wp-json\/wp\/v2\/tags?post=27007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}