{"id":6209,"date":"2017-01-28T16:53:44","date_gmt":"2017-01-28T21:53:44","guid":{"rendered":"https:\/\/themespress.ca\/?p=6209"},"modified":"2022-09-03T13:58:21","modified_gmt":"2022-09-03T17:58:21","slug":"display-images-linked-to-wordpress-post-id","status":"publish","type":"post","link":"https:\/\/themespress.ca\/en\/display-images-linked-to-wordpress-post-id\/","title":{"rendered":"Display Images linked to WordPress Post ID"},"content":{"rendered":"<div class=\"wpb-content-wrapper\"><div class=\"vc_row wpb_row vc_row-fluid\"><div class=\"wpb_column vc_column_container vc_col-sm-12\"><div class=\"vc_column-inner\"><div class=\"wpb_wrapper\">\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>With this tutorial, we will create a function that will display images linked to Post IDs.<\/p>\n<p>Let&#8217;s say you have a form, you add a post and upload multiple images. These images are now known as  get_attachment_image.<\/p>\n<p>With this function we will use a query that will fetch the Post IDs&#8217; get_attachment_image. We also want to display the image with the $size = medium;.<\/p>\n<p>As reference, here are the image sizes that WordPress uses: thumbnail, medium, large, and full.<\/p>\n<p>We also need to specify in our function that if there aren&#8217;t any images linked to the a post ID, to display noting. We configure our arguments and display nothing if empty.<\/p>\n<p>Now we will loop our results with a foreach with custom HTML.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-5013276\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-5013276\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"php\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">function via_get_images_attachees() {\n\tglobal $post;\n    $thumb_id = get_post_thumbnail_id($post-&gt;ID);\n\t$id = intval( $post-&gt;ID );\n\t$size = &#039;medium&#039;;\n\t$attachments = get_children( array(\n\t\t\t&#039;post_parent&#039;     =&gt; $id,\n\t\t\t&#039;post_status&#039;     =&gt; &#039;inherit&#039;,\n\t\t\t&#039;post_type&#039;       =&gt; &#039;attachment&#039;,\n\t\t\t&#039;post_mime_type&#039;  =&gt; &#039;image&#039;,\n\t\t\t&#039;order&#039;           =&gt; &#039;ASC&#039;,\n\t\t\t&#039;orderby&#039;         =&gt; &#039;menu_order&#039;,\n            &#039;post__not_in&#039;    =&gt; array( $thumb_id )\n\t\t) );\n\tif ( empty( $attachments ) )\n\treturn &#039;&#039;;\n\t$output = &quot;\\n&quot;;\n\t$output .= &#039;&lt;div id=&quot;grid&quot;&gt;&#039;; \n    \n\t\/*** Loop through each attachment ***\/ \n\tforeach ( $attachments as $id =&gt; $attachment ) : $img_cap = $attachment-&gt;post_excerpt; \n\t\t\/\/ New line to get the caption \n\t\t$img_alt = get_post_meta($attachment_id, &#039;_wp_attachment_image_alt&#039;, true); \n\t\t\/\/alt \n\t\tif ($img_alt == &#039;&#039;) : \n\t\t$img_alt = $attachment-&amp;gt;post_title; endif; $title = esc_html( $attachment-&amp;gt;post_title, 1 ); \n\t\t$img = wp_get_attachment_image_src( $id, $size ); \n\t\t$output .= &#039;&lt;div class=&quot;box&quot;&gt;&#039;; \n\t\t$output .= &#039;&lt;div data-thumbnail=&quot;&#039; . esc_url( wp_get_attachment_url( $id ) ) . &#039;&quot;&gt;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div data-image=&quot;&#039; . esc_url( wp_get_attachment_url( $id ) ) . &#039;&quot;&gt;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div class=&quot;thumbnail-caption&quot;&gt;&#039;; \n\t\t$output .= &#039;&lt;h3&gt;&#039;. $img_alt .&#039;&lt;\/h3&gt;&#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div class=&quot;lightbox-text&quot;&gt;&#039;; \n\t\t$output .= &#039;&quot; &#039;. $img_alt .&#039; &quot; &#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\tendforeach; \n\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\n\treturn $output; \n}<\/pre><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>Please note that in the loop, we also want to store the image&#8217;s lat text in the <strong>$img_alt<\/strong> variable. Whether it&#8217;s a good or bad idea is up to you.<\/p>\n<p>Now let&#8217;s display the results within a template::<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-3529751\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-3529751\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"standard\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">&lt;?php echo via_get_images_attachees(); ?&gt;<\/pre><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>We know that the Post Thumbnail is considered like an attached image. So the Post Thumbnail will be in the list of images. You can add an exclusion in your arguments with the <strong>$thumb_id<\/strong> variable.<\/p>\n<p>Here&#8217;s an example of how to exclude the Post Thumbnail: Use the following argument after the $post;<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-8113136\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-8113136\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"standard\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">$thumb_id = get_post_thumbnail_id($post-&gt;ID);<\/pre><\/div>\n\t<div class=\"wpb_text_column wpb_content_element\" >\n\t\t<div class=\"wpb_wrapper\">\n\t\t\t<p>And then we add the excluded argument in the $attachments variable by using post__not_in  inside the <strong>$thumb_id<\/strong> variable.<\/p>\n\n\t\t<\/div>\n\t<\/div>\n<div id=\"ts-enlighterjs-container-1732381\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-1732381\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"standard\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">$attachments = get_children( array(\n\t&#039;post_parent&#039;    =&gt; $id,\n\t&#039;post_status&#039;    =&gt; &#039;inherit&#039;,\n\t&#039;post_type&#039;      =&gt; &#039;attachment&#039;,\n\t&#039;post_mime_type&#039; =&gt; &#039;image&#039;,\n\t&#039;order&#039;          =&gt; &#039;ASC&#039;,\n\t&#039;orderby&#039;        =&gt; &#039;menu_order&#039;,\n\t&#039;post__not_in&#039;   =&gt; array( $thumb_id )\n) );<\/pre><\/div><h2 style=\"text-align: left\" class=\"vc_custom_heading vc_do_custom_heading\" >Final code snippet to display images attached to WordPress Post IDs by excluding Post Thumbnail<\/h2><div id=\"ts-enlighterjs-container-5342497\" class=\"ts-enlighterjs-container-single-enabled  \" style=\"width: 100%;  margin-top: 0px; margin-bottom: 0px;\" data-enlighter-doubleclick=\"true\" data-enlighter-windowbutton=\"true\" data-enlighter-windowtext=\"New Window\" data-enlighter-rawbutton=\"true\" data-enlighter-rawtext=\"RAW Code\" data-enlighter-infobutton=\"false\" data-enlighter-infotext=\"EnlighterJS\" data-enlighter-indent=\"2\"><pre id=\"ts-enlighterjs-pre-5342497\" class=\"\" style=\"white-space: pre-wrap; height: 100%; margin: 0; padding: 0;\" data-enlighter-language=\"php\" data-enlighter-theme=\"enlighter\" data-enlighter-group=\"\" data-enlighter-title=\"\" data-enlighter-linenumbers=\"true\" data-enlighter-lineoffset=\"1\" data-enlighter-highlight=\"\">function via_get_images_attachees() {\n\tglobal $post;\n    $thumb_id = get_post_thumbnail_id($post-&gt;ID);\n\t$id = intval( $post-&gt;ID );\n\t$size = &#039;medium&#039;;\n\t$attachments = get_children( array(\n\t\t\t&#039;post_parent&#039;     =&gt; $id,\n\t\t\t&#039;post_status&#039;     =&gt; &#039;inherit&#039;,\n\t\t\t&#039;post_type&#039;       =&gt; &#039;attachment&#039;,\n\t\t\t&#039;post_mime_type&#039;  =&gt; &#039;image&#039;,\n\t\t\t&#039;order&#039;           =&gt; &#039;ASC&#039;,\n\t\t\t&#039;orderby&#039;         =&gt; &#039;menu_order&#039;,\n            &#039;post__not_in&#039;    =&gt; array( $thumb_id )\n\t\t) );\n\tif ( empty( $attachments ) )\n\treturn &#039;&#039;;\n\t$output = &quot;\\n&quot;;\n\t$output .= &#039;&lt;div id=&quot;grid&quot;&gt;&#039;; \n    \n\t\/*** Loop through each attachment ***\/ \n\tforeach ( $attachments as $id =&gt; $attachment ) : $img_cap = $attachment-&gt;post_excerpt; \n\t\t\/\/ New line to get the caption \n\t\t$img_alt = get_post_meta($attachment_id, &#039;_wp_attachment_image_alt&#039;, true); \n\t\t\/\/alt \n\t\tif ($img_alt == &#039;&#039;) : \n\t\t$img_alt = $attachment-&amp;gt;post_title; endif; $title = esc_html( $attachment-&amp;gt;post_title, 1 ); \n\t\t$img = wp_get_attachment_image_src( $id, $size ); \n\t\t$output .= &#039;&lt;div class=&quot;box&quot;&gt;&#039;; \n\t\t$output .= &#039;&lt;div data-thumbnail=&quot;&#039; . esc_url( wp_get_attachment_url( $id ) ) . &#039;&quot;&gt;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div data-image=&quot;&#039; . esc_url( wp_get_attachment_url( $id ) ) . &#039;&quot;&gt;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div class=&quot;thumbnail-caption&quot;&gt;&#039;; \n\t\t$output .= &#039;&lt;h3&gt;&#039;. $img_alt .&#039;&lt;\/h3&gt;&#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;div class=&quot;lightbox-text&quot;&gt;&#039;; \n\t\t$output .= &#039;&quot; &#039;. $img_alt .&#039; &quot; &#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\t$output .= &#039;&lt;\/div&gt;&#039;; \n\tendforeach; \n\t$output .= &#039;&lt;\/div&gt;&#039;; \n\t\n\treturn $output; \n}<\/pre><\/div><\/div><\/div><\/div><\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"With this tutorial, we will create a function that will display images linked to Post IDs. Let's say you have a form, you add a post and upload multiple images.<div class=\"read-more\"><a class=\"btn button-secondary\" href=\"https:\/\/themespress.ca\/en\/display-images-linked-to-wordpress-post-id\/\">Read More<\/a><\/div>","protected":false},"author":81,"featured_media":4587,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[283],"tags":[356],"class_list":["post-6209","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorials","tag-using-images"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts\/6209","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/comments?post=6209"}],"version-history":[{"count":0,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/posts\/6209\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/media\/4587"}],"wp:attachment":[{"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/media?parent=6209"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/categories?post=6209"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themespress.ca\/en\/wp-json\/wp\/v2\/tags?post=6209"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}