{"id":49273,"date":"2025-08-27T08:59:01","date_gmt":"2025-08-27T08:59:01","guid":{"rendered":"https:\/\/crocoblock.com\/knowledge-base\/?post_type=article&#038;p=49273"},"modified":"2025-09-16T09:00:06","modified_gmt":"2025-09-16T09:00:06","slug":"how-to-build-listing-with-filters-via-lovable","status":"publish","type":"article","link":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/","title":{"rendered":"How to Build a Listing with Filters via Lovable"},"content":{"rendered":"\n<p>Learn how to build a dynamic listing with filters using the Lovable AI website builder. This tutorial walks you through connecting your WordPress data via <em>JetEngine\u2019s <\/em>REST API endpoints, setting up filters, and generating a fully functional directory website with Lovable.<\/p>\n\n\n\n<p>From our <a href=\"https:\/\/crocoblock.com\/blog\/wordpress-ai-builders-and-wordpress-crocoblock-combo\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>WordPress and AI Builders Integration using Crocoblock: Bolt and Lovable Cases<\/strong><\/a> article, you can learn about the integration with Crocoblock. In this guide, we focus on setting up the listing with filters.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"setting-up-a-query-builder-source\">Setting Up a Query Builder Source<\/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>Proceed to <strong><em>WordPress Dashboard &gt; JetEngine &gt; Query Builder<\/em><\/strong> and click the \u201c<strong>Add New<\/strong>\u201d button. Type the query <strong>Name<\/strong> and select the \u201c<a href=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/query-builder-cct-query-type\/\" target=\"_blank\" rel=\"noreferrer noopener\">Custom Content Type Query<\/a>\u201d option as a <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\/2025\/08\/query-created.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-1024x640.webp\" alt=\"query created\" class=\"wp-image-49274\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"rest-api-activation\">REST API Activation<\/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>In the query you created, enable the <strong>Register REST API Endpoint<\/strong> toggle. Then, set up the <strong>Endpoint Namespace<\/strong> and <strong>Endpoint Path<\/strong>.\u00a0<\/p>\n\n\n\n<p>You receive the <strong>REST API Endpoint URL<\/strong>; keep it, as we will use it in the prompt later.\u00a0<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-1024x640.webp\" alt=\"register rest api endpoint toggle enabled\" class=\"wp-image-49275\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/register-rest-api-endpoint-toggle-enabled.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Now, let\u2019s move to the <strong>Query Arguments<\/strong> settings \u2013 here, we add the parameters that will filter the listing.&nbsp;<\/p>\n\n\n\n<p>For example, we add the \u201ctype\u201d and \u201cformat\u201d parameters with multiple values in the <strong>Default Value <\/strong>column to have multiple-choice filters on our site. Additionally, there are four more parameters to get a range filter for the price (\u201cprice_from\u201d and \u201cprice_to\u201d parameters) and a date filter (\u201cdate_from\u201d and \u201cdate_to\u201d parameters).&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-1024x640.webp\" alt=\"query arguments added\" class=\"wp-image-49276\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-arguments-added.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Then, scroll down to the <strong>Query <\/strong>tab and click the \u201c<strong>Add<\/strong> <strong>New<\/strong>\u201d button.&nbsp;<\/p>\n\n\n\n<p>Select the field in the <strong>Field <\/strong>input to which the parameter is attached. Choose the provider from the <strong>Compare <\/strong>dropdown (select \u201cIn the list\u201d option for the multiple-choice fields).&nbsp;<\/p>\n\n\n\n<p>For the <strong>Value<\/strong>, click the \u201c<a href=\"https:\/\/crocoblock.com\/knowledge-base\/features\/dynamic-tags-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Dynamic Tag<\/strong><\/a>\u201d icon and choose the \u201cQuery Variable\u201d option. In the newly opened pop-up, set the <strong>Variable Name<\/strong> \u2013 it should be equal to the <strong>Query Argument<\/strong> you used earlier.&nbsp;<\/p>\n\n\n\n<p>Additionally, enable the <strong>Exclude this clause from the query if the dynamic value is empty <\/strong>option.<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-1024x640.webp\" alt=\"query tab settings for the multiple-choice field\" class=\"wp-image-49277\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-multiple-choice-field.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>If you need a range filter and have <strong>Query Arguments<\/strong> similar to \u201cprice_from\u201d and \u201cprice_to\u201d, then add two more tabs in the <strong>Query <\/strong>section.&nbsp;<\/p>\n\n\n\n<p>The settings should be identical to those we described previously. However, the provider in the <strong>Compare<\/strong> input should be \u201cGreater or equal (&gt;=)\u201d for the first tab and \u201cLess or equal(&lt;=)\u201d for the second one.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-1024x640.webp\" alt=\"query tab settings for the price_from and price_to fields\" class=\"wp-image-49278\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-tab-settings-for-the-price_from-and-price_to-fields.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>Click the \u201c<strong>Update Query<\/strong>\u201d button.<\/p>\n\n\n<div class=\"note-banner d-flex border-bold border-jetthemecore rounded overflow-hidden p-20\"><div class=\"mr-12\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M9 21C9 21.5 9.4 22 10 22H14C14.6 22 15 21.5 15 21V20H9V21ZM12 2C8.1 2 5 5.1 5 9C5 11.4 6.2 13.5 8 14.7V17C8 17.5 8.4 18 9 18H15C15.6 18 16 17.5 16 17V14.7C17.8 13.4 19 11.3 19 9C19 5.1 15.9 2 12 2Z\" fill=\"#F2D23C\"\/><\/svg><\/div><div class=\"d-flex flex-column\"><div class=\"text-900 mb-12\">Things to know<\/div><p class=\"m-0\">Ensure that you retain the <strong>REST API Endpoint URL<\/strong>, the list of parameters you added to the <strong>Query Arguments<\/strong>, and the <strong>Example of the REST API Endpoint URL with Query Arguments<\/strong>, as this information will be used in the prompt.<\/p><\/div><\/div>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"creating-a-prompt\">Creating a Prompt<\/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>Now, proceed to the <a href=\"https:\/\/lovable.dev\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Lovable<\/a> platform and sign in or log in.&nbsp;<\/p>\n\n\n\n<p>The prompt should include information about the site you need to create, such as its type and purpose, as well as the main functions that are expected to be implemented. You can also share some existing sites as examples and any other context that may be helpful for the builder.&nbsp;<\/p>\n\n\n\n<p>It should also be noted that the data should be retrieved from the REST API, and the URLs you saved earlier should be shared. It is recommended to describe the specific data that will be obtained from the URLs. If you use the <strong>CCT <\/strong>as a source, describe what meta fields from the <strong>CCT<\/strong>. When you use the query as a source, you can copy an item from the <strong>Preview results<\/strong> section for the AI builder.\u00a0<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-1024x640.webp\" alt=\"item from the preview query results copied\" class=\"wp-image-49279\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/item-from-the-preview-query-results-copied.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>If you need a single page to exist on the site, request its creation and share the <strong>Endpoint URL<\/strong> from which the single page will be obtained.&nbsp;<\/p>\n\n\n\n<p>As in this case, we need the filters to be added. We need to clarify the specific filters required, such as a select filter, a range, or a radio. The options for the filters should also be added. If the values are dynamic, you can get them from the REST API.\u00a0<\/p>\n\n\n\n<p>Here is a prompt we used in this case.&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>I want to build a website, which is a showcase of other websites built with Crocoblock plugins, like this - https:\/\/crocoblock.com\/websites-made-with-elementor-and-crocoblock\/\n\nYou can grab the data by the API from here - https:\/\/demo.crocoblock.com\/lab\/wp-json\/jet-cct\/websites\n\nI need a listing of the websites with filters by used plugins, website type, and topic, and optionally by author. Also, I need the single page for the website, based on the data from the API. A single website could be retrieved from the API by such a URL - https:\/\/demo.crocoblock.com\/lab\/wp-json\/jet-cct\/websites\/{_ID}, where {_ID} you need to replace with the actual item ID.\n\nAllowed plugins for the filters\n\nJetEngine\nJetSmartFilters\nJetFormBuilder\nJetThemeCore\nJetElements\nJetMenu\nJetTabs\nJetWooBuilder\nJetProductGallery\nJetCompareWishlist\nJetPopup\nJetTricks\nJetReviews\nJetSearch\nJetAppointment\nJetBooking\nJetBlog\n\nAllowed types\n\nE-Commerce\nDirectory\nPersonal Blog\nPortfolio\nCorporate Website\nLanding Page\nNews Portal\nOnline Magazine\nMembership Site\nForum \/ Community\nEducational Website\nNonprofit \/ Charity\nGovernment Website\nWeb App \/ SaaS\nBooking Website\nEvent Website\nResume \/ CV Website\nAffiliate \/ Review Website\nMarketplace\nWiki \/ Knowledge Base\nPodcast Website\nRestaurant \/ Menu Website\n\nAllowed topics\n\nFashion\nTechnology\nLifestyle\nTravel\nFood\nHealth &amp; Fitness\nPersonal Finance\nEducation\nEntertainment\nPhotography\nParenting\nHome &amp; Garden\nDIY &amp; Crafts\nBeauty\nAutomotive\nBusiness\nMarketing\nSports\nNews &amp; Politics\nGaming\nMusic\nArt &amp; Design\nReal Estate\nScience\nSpirituality &amp; Religion\nPets\nEnvironment &amp; Nature\nCareers &amp; Jobs\nRelationships &amp; Dating\nReviews &amp; Product Comparisons\n\nExample of the API URL with filter parameters\n\nhttps:&#47;&#47;demo.crocoblock.com\/lab\/wp-json\/jet-cct\/websites\/?cct_author_id=1&amp;_orderby=_ID&amp;_order=desc&amp;_ordertype=integer\n\nHere is a description of all API response props (which also can be used as request parameters in _filters)\n\n_ID - Item ID;\nwebsite_name - Website Name;\nwebsite_url - Website URL;\npreview_image - Preview Image;\ndeveloper_name - Developer Name;\nplugins_used - Plugins Used;\nwebsite_type - Website Type;\nwebsite_topic - Website Topic;\ndescription - Description;\ncct_author_id - Item Author;\ncct_created - Created Date;\ncct_modified - Modified Date;\ncct_status - Status;\n_cct_search - Search string, type: string;\n_cct_search_by - Comma separated field names list to search only by these fields, type: string;\n_limit - Items limit, type: number;\n_offset - Items offset, type: number;\n_orderby - Order items by field, type: string;\n_order - Order - asc or desc, type: string;\n_ordertype - Order value type - integer, float, timestamp, date, string, type: string;\n_filters - JSON-encoded filters string, type: string;\n<\/code><\/pre>\n\n\n<div class=\"note-banner d-flex border-bold border-jetthemecore rounded overflow-hidden p-20\"><div class=\"mr-12\"><svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M9 21C9 21.5 9.4 22 10 22H14C14.6 22 15 21.5 15 21V20H9V21ZM12 2C8.1 2 5 5.1 5 9C5 11.4 6.2 13.5 8 14.7V17C8 17.5 8.4 18 9 18H15C15.6 18 16 17.5 16 17V14.7C17.8 13.4 19 11.3 19 9C19 5.1 15.9 2 12 2Z\" fill=\"#F2D23C\"\/><\/svg><\/div><div class=\"d-flex flex-column\"><div class=\"text-900 mb-12\">Things to know<\/div><p class=\"m-0\">Please note that the prompt is provided as an example, so feel free to customize it according to your specific needs.<\/p><\/div><\/div>\n\n\n\n<p>Paste the prompt into the Lovable input and click the arrow-shaped icon or the \u201c<strong>Enter<\/strong>\u201d button.<\/p>\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"check-the-result\">Check the Result<\/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>Here is the site we got: <a href=\"https:\/\/croc-showcase-hub.lovable.app\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/croc-showcase-hub.lovable.app\/<\/a>&nbsp;<\/p>\n\n\n\n<p>The list of sites is visible, as well as the filters on the left side.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-1024x640.webp\" alt=\"the site is created\" class=\"wp-image-49280\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/the-site-is-created.webp 1824w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/div>\n\n\n\n<p>The filters work properly; we select the site type and topic, and we get the correct results.&nbsp;<\/p>\n\n\n\n<div class=\"wp-block-image size-large\"><a href=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end.webp\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-1024x640.webp\" alt=\"filters work on the front end\" class=\"wp-image-49281\" srcset=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-1024x640.webp 1024w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-300x188.webp 300w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-768x480.webp 768w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-1536x960.webp 1536w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-on-the-front-end-600x375.webp 600w, https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/filters-work-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 listing with the filters using the <em>JetEngine <\/em>WordPress plugin and Lovable builder.&nbsp;&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine Rest API endpoints and create a searchable directory website.<\/p>\n","protected":false},"author":20,"featured_media":0,"template":"","format":"standard","builder-category":[],"article-category":[583],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock<\/title>\n<meta name=\"description\" content=\"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.\" \/>\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-build-listing-with-filters-via-lovable\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock\" \/>\n<meta property=\"og:description\" content=\"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/\" \/>\n<meta property=\"og:site_name\" content=\"Help Center\" \/>\n<meta property=\"article:modified_time\" content=\"2025-09-16T09:00:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-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=\"7 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-build-listing-with-filters-via-lovable\/\",\"url\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/\",\"name\":\"How to Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock\",\"isPartOf\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/#website\"},\"datePublished\":\"2025-08-27T08:59:01+00:00\",\"dateModified\":\"2025-09-16T09:00:06+00:00\",\"description\":\"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.\",\"breadcrumb\":{\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/#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 Build a Listing with Filters via Lovable\"}]},{\"@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 Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock","description":"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.","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-build-listing-with-filters-via-lovable\/","og_locale":"en_US","og_type":"article","og_title":"How to Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock","og_description":"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.","og_url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/","og_site_name":"Help Center","article_modified_time":"2025-09-16T09:00:06+00:00","og_image":[{"url":"https:\/\/crocoblock.com\/knowledge-base\/wp-content\/uploads\/2025\/08\/query-created-1024x640.webp"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/","url":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/","name":"How to Build a Listing with Filters via Lovable \u2014 JetEngine | Crocoblock","isPartOf":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/#website"},"datePublished":"2025-08-27T08:59:01+00:00","dateModified":"2025-09-16T09:00:06+00:00","description":"Learn how to build a listing with filters in Lovable using WordPress data. Connect JetEngine REST API endpoints and create a searchable directory website.","breadcrumb":{"@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/crocoblock.com\/knowledge-base\/jetengine\/how-to-build-listing-with-filters-via-lovable\/#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 Build a Listing with Filters via Lovable"}]},{"@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\/49273"}],"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\/20"}],"wp:attachment":[{"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/media?parent=49273"}],"wp:term":[{"taxonomy":"builder-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/builder-category?post=49273"},{"taxonomy":"article-category","embeddable":true,"href":"https:\/\/crocoblock.com\/knowledge-base\/wp-json\/wp\/v2\/article-category?post=49273"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}