{"id":40968,"date":"2023-07-14T08:20:44","date_gmt":"2023-07-14T08:20:44","guid":{"rendered":"https:\/\/crocoblock.com\/knowledge-base\/?post_type=article&#038;p=40968"},"modified":"2024-08-28T07:45:24","modified_gmt":"2024-08-28T07:45:24","slug":"how-to-create-listing-for-wordpress-media-library","status":"publish","type":"article","link":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/","title":{"rendered":"How to Create a Listing for WordPress Media Library"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"create-custom-sql-query\"><strong>Create Custom SQL Query<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<p>Let us start with creating a custom query by following <strong><em>WordPress Dashboard &gt; JetEngine &gt; Query Builder<\/em><\/strong>.<\/p>\n\n\n\n<p>Add a new query by pressing the similarly named button.<\/p>\n\n\n\n<p>Give a <strong>Name <\/strong>to the query and select \u201cSQL\/AI Query\u201d <strong>Query Type<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-1024x640.webp\" alt=\"sql ai query\" class=\"wp-image-45459\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>In the <strong>Custom SQL Query <\/strong>section, select the \u201cpostmeta\u201d option in the <strong>From table <\/strong>drop-down and enable the <strong>Use Join <\/strong>feature.<\/p>\n\n\n\n<p>Press the \u201c<strong>Add new<\/strong>\u201d button in the <strong>Join Tables <\/strong>section.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-1024x640.webp\" alt=\"postmeta table\" class=\"wp-image-45460\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/postmeta-table.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>The <strong>Join Type<\/strong> should be set to \u201cInner Join\u201d with the <strong>Join Table<\/strong> \u201cposts.\u201d\u00a0<\/p>\n\n\n\n<p>The table columns \u201cID\u201d and \u201cpost_id\u201d are to be selected, respectively, in the following <strong>When current table column <\/strong>and <strong>Is equal to other table column<\/strong> fields.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-1024x640.webp\" alt=\"posts join table\" class=\"wp-image-45461\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/posts-join-table.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>After that, you should add two query clauses by pressing the \u201c<strong>Add new<\/strong>\u201d button in the <strong>Where (query clauses) <\/strong>section.<\/p>\n\n\n\n<p>In the first clause, you should select the \u201cpostmeta.meta_key\u201d <strong>Column <\/strong>to be \u201cEqual\u201d (<strong>Compare <\/strong>field) to the \u201c_wp_attached_file\u201d <strong>Value<\/strong>.<\/p>\n\n\n\n<p>Also, mind selecting \u201cChar\u201d as the <strong>Type<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-1024x640.webp\" alt=\"first query clause\" class=\"wp-image-45462\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/first-query-clause.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>In the second meta clause, you should add the \u201cattachment\u201d <strong>Value<\/strong> as a post type from which to get the posts, which are the images in our case.<\/p>\n\n\n\n<p>So, the <strong>Column <\/strong>should be set to \u201cposts.post_type,\u201d the <strong>Compare<\/strong> operator to \u201cEqual,\u201d and the <strong>Type <\/strong>to \u201cChar.\u201d<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-1024x640.webp\" alt=\"second query clause\" class=\"wp-image-45463\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/second-query-clause.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Also, mind picking the \u201cAnd\u201d option in the <strong>Where Relation <\/strong>field. Then, activate the <strong>Group Results <\/strong>toggle and set the \u201cposts.ID\u201d <strong>Group By <\/strong>option.<\/p>\n\n\n\n<p>This way, the media files will not be doubled if one media file is attached to several posts.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-1024x640.webp\" alt=\"where relation\" class=\"wp-image-45464\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/where-relation.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Once the custom query is completed, press the \u201c<strong>Add Query<\/strong>\u201d button.\u00a0<\/p>\n\n\n\n<p>We will now create a <a href=\"https:\/\/crocoblock.com\/knowledge-base\/features\/listing-template-in-elementor-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Listing Template<\/strong><\/a> for this SQL query.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"build-listing-template-for-custom-query\"><strong>Build Listing Template for Custom Query<\/strong><\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\"><div class=\"wp-block-group__inner-container\">\n<p>Head to <strong><em>WordPress Dashboard &gt; JetEngine &gt; Listings\/Components<\/em><\/strong>.<\/p>\n\n\n\n<p>Click the \u201c<strong>Add New Listing Item<\/strong>\u201d button, and select \u201cQuery Builder\u201d as a <strong>Listing source<\/strong>. Then, select the custom <strong>Query <\/strong>that has just been created.<\/p>\n\n\n\n<p>Complete the <strong>Listing item name <\/strong>field and choose the desired <strong>Listing view<\/strong>.<\/p>\n\n\n\n<p>Push \u201c<strong>Create Listing Item<\/strong>.\u201d<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-1024x640.webp\" alt=\"setup listing item pop-up\" class=\"wp-image-45465\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/setup-listing-item-pop-up.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>In the editor, add a <a href=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/dynamic-field-widget-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Dynamic Field<\/strong><\/a> widget to the page.<\/p>\n\n\n\n<p>Firstly, output the image from the Media Library itself. To do so, select \u201cPost\/Term\/User\/Object Data\u201d as the <strong>Source<\/strong> and \u201cmeta_value\u201d as the <strong>Object Field<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-1024x640.webp\" alt=\"dynamic field object field\" class=\"wp-image-45466\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/dynamic-field-object-field.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>The \u201cmeta_value\u201d column stores the media file URL as a value. So, we need to activate the <strong>Customize the field output<\/strong> toggle to transform the image\u2019s URL into the image itself. HTML tag &lt;img> can help with this.\u00a0<\/p>\n\n\n\n<p>Check a recommended <strong>Field Format<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;img src=\"https:\/\/your-domain.com\/wp-content\/uploads\/%s\"><\/code><\/pre>\n\n\n\n<p>As you can observe, the image is already displayed in the editor.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-1024x640.webp\" alt=\"image dynamic field\" class=\"wp-image-45467\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/image-dynamic-field.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Let\u2019s create a button that can download the image by clicking on the button.&nbsp;<\/p>\n\n\n\n<p>Add another <strong>Dynamic Field <\/strong>widget, and select \u201cPost\/Term\/User\/Object Data\u201d as a <strong>Source<\/strong> and \u201cmeta_value\u201d as an <strong>Object Field<\/strong>.<\/p>\n\n\n\n<p>Then, activate the <strong>Customize field output<\/strong> toggle and add the following <strong>Field Format <\/strong>to make the image downloaded on your device:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code> &lt;a href=\"https:\/\/your-domain.com\/wp-content\/uploads\/%s\" download>Download&lt;\/a><\/code><\/pre>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-1024x640.webp\" alt=\"button dynamic field\" class=\"wp-image-45468\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/button-dynamic-field.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"make-image-downloadable\"><strong>Make image downloadable<\/strong><\/h3>\n\n\n\n<p>Let\u2019s also add another option for displaying and downloading the image using just the <strong>Dynamic Field <\/strong>widget.<\/p>\n\n\n\n<p>Activate the <strong>Customize field output <\/strong>toggle and add the following <strong>Field format<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;a href=\"https:\/\/your-domain.com\/wp-content\/uploads\/%1$s\" download>&lt;img src=\"https:\/\/your-domain.com\/wp-content\/uploads\/%s\">&lt;\/a><\/code><\/pre>\n\n\n\n<p>This way, an image can be downloaded by clicking on it.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-1024x640.webp\" alt=\"downloadable image settings\" class=\"wp-image-45469\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/downloadable-image-settings.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Customize the listing and press the \u201c<strong>Update<\/strong>\u201d button to save the changes.<\/p>\n\n\n\n<p>Check the result by outputting the listing for Media Library with the <a href=\"https:\/\/crocoblock.com\/knowledge-base\/features\/listing-grid-widget-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Listing Grid<\/strong><\/a> widget on the needed page.\u00a0<\/p>\n\n\n\n<p>You should only add the <strong>Listing Template<\/strong> to the <strong>Listing Grid<\/strong> without applying the custom query since it is already based on the custom query.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-1024x640.webp\" alt=\"listing grid widget in elementor\" class=\"wp-image-45471\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-widget-in-elementor-1.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Check the <strong>Listing Grid<\/strong> with the images from the WordPress Media Library on the front end.&nbsp;<\/p>\n\n\n\n<p>Not only is the image displayed, but it can also be downloaded by clicking on the button or on the image itself.<\/p>\n\n\n\n<div class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-1024x640.webp\" alt=\"listing grid on the front end\" class=\"wp-image-45472\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/listing-grid-on-the-front-end.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n<\/div><\/div>\n\n\n\n<p>That\u2019s it; now you know how to create a <em>JetEngine<\/em> <strong>Listing Template <\/strong>that will display the WordPress Media Library items on the front end and make it downloadable.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial explains how to create a Listing template using the JetEngine plugin to show a list of WordPress Media library images that can be displayed and downloaded.<\/p>\n","protected":false},"author":9,"featured_media":0,"template":"","format":"standard","builder-category":[],"article-category":[388],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock<\/title>\n<meta name=\"description\" content=\"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock\" \/>\n<meta property=\"og:description\" content=\"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/\" \/>\n<meta property=\"og:site_name\" content=\"Help Center\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-28T07:45:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-1024x640.webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/\",\"name\":\"How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock\",\"isPartOf\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#website\"},\"datePublished\":\"2023-07-14T08:20:44+00:00\",\"dateModified\":\"2024-08-28T07:45:24+00:00\",\"description\":\"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.\",\"breadcrumb\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/crocoblock.com\/knowledge-base\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Articles\",\"item\":\"https:\/\/crocoblock.com\/knowledge-base\/articles\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How to Create a Listing for WordPress Media Library\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#website\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/\",\"name\":\"Help Center\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/crocoblock.com\/knowledge-base\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#organization\",\"name\":\"Help Center\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg\",\"contentUrl\":\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg\",\"caption\":\"Help Center\"},\"image\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock","description":"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/","og_locale":"en_US","og_type":"article","og_title":"How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock","og_description":"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.","og_url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/","og_site_name":"Help Center","article_modified_time":"2024-08-28T07:45:24+00:00","og_image":[{"url":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2024\/08\/sql-ai-query-1024x640.webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/","url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/","name":"How to Create Listing for WordPress Media Library \u2014 JetEngine | Crocoblock","isPartOf":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#website"},"datePublished":"2023-07-14T08:20:44+00:00","dateModified":"2024-08-28T07:45:24+00:00","description":"From this guide, find out how to build a JetEngine listing with WordPress Media Library images as a source that can be displayed and downloaded.","breadcrumb":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-create-listing-for-wordpress-media-library\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/crocoblock.com\/knowledge-base\/"},{"@type":"ListItem","position":2,"name":"Articles","item":"https:\/\/crocoblock.com\/knowledge-base\/articles\/"},{"@type":"ListItem","position":3,"name":"How to Create a Listing for WordPress Media Library"}]},{"@type":"WebSite","@id":"https:\/\/crocoblock.com\/knowledge-base\/#website","url":"https:\/\/crocoblock.com\/knowledge-base\/","name":"Help Center","description":"","publisher":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/crocoblock.com\/knowledge-base\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/crocoblock.com\/knowledge-base\/#organization","name":"Help Center","url":"https:\/\/crocoblock.com\/knowledge-base\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/","url":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg","contentUrl":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/04\/invert-crocoblock-logo.svg","caption":"Help Center"},"image":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article\/40968"}],"collection":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/types\/article"}],"author":[{"embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/users\/9"}],"wp:attachment":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=40968"}],"wp:term":[{"taxonomy":"builder-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/builder-category?post=40968"},{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article-category?post=40968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}