Web Directory Free

Plugin Banner

Web Directory Free

by Shamalli

Download
Description

Web Directory Free turns WordPress into a searchable business directory. Sort listings into categories, locations and tags, build your own listing form, drop the directory onto any page with a shortcode, and let visitors search and browse – as a list, as cards, or on an interactive map.

In the free edition you add and edit listings from the WordPress admin, and visitors browse, search and view them on the front end.

Live demo: directory.salephpscripts.com

What you can build

A local business directory, a member or staff directory, a property or vehicle catalogue, a venue or event guide, a service-provider index, a classifieds board. Anything that is a list of places or things with fields, categories and a map.

Organise your listings

  • Categories and locations are hierarchical, so Country, Region, City nests the way you expect, and each level gets its own page.
  • Tags for the cross-cutting labels that do not fit a hierarchy.
  • Each category can carry its own marker icon and colour, so the map reads at a glance.
  • Every category, location and tag page is a real URL with its own listings, search and map.

Build the listing form yourself

The form builder is drag and drop: arrange fields in rows and columns, and add your own on top of the built-in ones. Field types included:

  • Title, Content, Excerpt
  • Categories, Tags
  • Address and Map
  • Images & Videos – photos plus YouTube or Vimeo links, shown in one gallery with a lightbox
  • Contact info, Phone, Email, Website URL
  • Text/string, Number, Price
  • List – as a dropdown, radio buttons or checkboxes
  • Date-Time
  • Opening hours
  • File upload

Every field can be placed independently on the listing card, the listing page, the search form and the map popup, so a field can be searchable without cluttering the card.

Put the directory anywhere

Each directory has a page builder: choose which elements appear on the home, category, location and listing pages, and in what order – search form, map, categories block, listings grid, slider, breadcrumbs, page title, buttons.

If you would rather place things by hand, every element is also a shortcode: [webdirectory], [webdirectory-search], [webdirectory-map], [webdirectory-listings], [webdirectory-categories], [webdirectory-locations], [webdirectory-slider], [webdirectory-breadcrumbs], [webdirectory-listing-page] and more. They work in the block editor, in Elementor and in WPBakery.

Maps

  • Three engines: Google Maps, Mapbox and MapLibre with MapTiler tiles. Pick per site.
  • Marker clustering, so thousands of listings stay usable.
  • Per-category and per-listing marker icons.
  • Rich popups built from the fields you chose, with the listing photo.
  • A map sidebar that lists what is currently in view, and follows as the visitor pans.
  • Radius search from an address, in miles or kilometres.
  • Several layouts, including a full-width hero map and a sticky map beside the listings.

Search that finds things

The search form is built the same way as the listing form: drag in the elements you want.

  • Keyword, categories, locations, address plus radius, rating.
  • Any custom field you added becomes a filter – a price range, a number range, a date, a dropdown.
  • A “More filters” separator to keep the visible form short.
  • Sorting by newest, oldest, title, rating, random, or any numeric or date field you defined.
  • Grid and list views, with the visitor’s choice remembered.

Ratings

Built in, no add-on: visitors rate a listing, the average shows on the card, the listing page and the map popup, and rating becomes a search filter and a sort option. Ratings can be switched off entirely.

Bulk work

  • CSV import and export for listings, including categories, locations, tags, custom fields, images and video links. Import creates or updates; export round-trips.
  • A thumbnail regeneration tool for when you change image sizes.

Housekeeping

  • Colour palette controls so the directory matches your theme, with several presets.
  • Email notifications with editable subjects, each one switchable.
  • Google reCAPTCHA (v2 or v3) on the listing contact form.
  • A diagnostics page that checks the directory is wired up correctly and tells you what to fix if it is not.
  • An install wizard that creates the pages and the first directory for you.
  • Translation ready: ships a POT file for any standard gettext or PO editor.
  • Built for large directories: a dedicated search index and sort index keep tens of thousands of listings responsive, and both rebuild in the background.

This plugin uses external services (map providers and, if you enable it, Google reCAPTCHA). See the External Services section below.

What is not in the free edition

Front-end submission. In the free edition listings are created and edited in the WordPress admin; visitors browse and search. The paid version adds front-end submission with membership plans, listing expiry and renewals, and WooCommerce checkout for paid, featured and upgraded listings.

Get the full version: Web 2.0 Directory on CodeCanyon

External Services

Web Directory Free uses the following third-party services. Nothing is sent until you use the matching feature:

  • Map providers (Google Maps, Mapbox, MapTiler / MapLibre) – when a map loads or an address is geocoded, the request (coordinates, the address being searched, and your API key/token) is sent to the provider you chose. See that provider’s terms and privacy policy.
  • Google reCAPTCHA – when you turn it on for the contact form, the visitor’s interaction is checked with Google. See Google’s terms and privacy policy.

The free edition does not contact the author’s servers: it gets updates through WordPress.org and does no license or “phone-home” checks.

  1. Upload the plugin folder to /wp-content/plugins/, or install the ZIP via Plugins -> Add New -> Upload Plugin.
  2. Activate Web Directory Free from the Plugins menu.
  3. Open the settings page, pick your map engine and enter its API key/token (Google Maps API key, Mapbox token, or MapTiler key).
  4. Create your categories and locations, build the listing form, add listings, and place the directory on any page with the shortcode.
  1. Setup wizard progress bar on the Settings step, showing the numbered stepper and Next button.

    Setup wizard progress bar on the Settings step, showing the numbered stepper and Next button.

  2. Setup wizard on the Form Builder step, showing the drag-and-drop listing form editor.

    Setup wizard on the Form Builder step, showing the drag-and-drop listing form editor.

  3. Setup wizard on the Edit Directory step, showing the directory page builder canvas.

    Setup wizard on the Edit Directory step, showing the directory page builder canvas.

  4. Setup wizard - Demo content step: choose sample listings to import (adds a Demo tab to the CSV import screen).

    Setup wizard - Demo content step: choose sample listings to import (adds a Demo tab to the CSV import screen).

  5. Setup wizard - Create a map step: build your first standalone map before finishing setup.

    Setup wizard - Create a map step: build your first standalone map before finishing setup.

  6. The Create page with this directory button in the Edit Directory toolbar, which publishes a page containing the [webdirectory id=N] shortcode.

    The Create page with this directory button in the Edit Directory toolbar, which publishes a page containing the [webdirectory id=N] shortcode.

  7. A published directory page (a page containing [webdirectory]) as visitors see it - page title, search form, category grid, map, and listings grid together.

    A published directory page (a page containing [webdirectory]) as visitors see it - page title, search form, category grid, map, and listings grid together.

  8. The directory search form rendered by the search element, showing the keyword, location, and taxonomy filters.

    The directory search form rendered by the search element, showing the keyword, location, and taxonomy filters.

  9. The member dashboard 'My Listings' tab, where users manage their own listings.

    The member dashboard 'My Listings' tab, where users manage their own listings.

  10. The four top-level menus Web 2.0 Directory adds to the WordPress admin sidebar: Directories, Directory listings, Maps and Directory Admin.

    The four top-level menus Web 2.0 Directory adds to the WordPress admin sidebar: Directories, Directory listings, Maps and Directory Admin.

  11. Creating a directory: the General settings (labels, URL slugs, listing template) on the left of the directory edit screen.

    Creating a directory: the General settings (labels, URL slugs, listing template) on the left of the directory edit screen.

  12. The drag-and-drop Form Builder assembling a listing form from the field palette (text, price, date, opening hours, address, image upload).

    The drag-and-drop Form Builder assembling a listing form from the field palette (text, price, date, opening hours, address, image upload).

  13. A category term's icon picker offering a Font Awesome glyph with colour, a bundled PNG, or an uploaded image.

    A category term's icon picker offering a Font Awesome glyph with colour, a bundled PNG, or an uploaded image.

  14. Choosing the map engine (Google Maps / Mapbox / MapLibre + MapTiler), entering the API key, and using the Test map engine keys button.

    Choosing the map engine (Google Maps / Mapbox / MapLibre + MapTiler), entering the API key, and using the Test map engine keys button.

  15. Building the on-map search form by dragging keyword, address+radius, category and custom-field slots onto the canvas.

    Building the on-map search form by dragging keyword, address+radius, category and custom-field slots onto the canvas.

  16. The Customization tab under Directory Admin -> Settings, showing the Color palette dropdown and the Main colors / Links & buttons / Images sections.

    The Customization tab under Directory Admin -> Settings, showing the Color palette dropdown and the Main colors / Links & buttons / Images sections.

Who can add listings in the free edition?

Listings are created and edited from the WordPress admin. Front-end submission (with optional moderation, expiration and renewal) is part of the full version.

Do I need API keys?

For maps, yes – each map provider needs its own key/token, entered on the settings page. Keys are stored on your site and are never sent to us.

Which map providers are supported?

Google Maps, Mapbox, and MapLibre with MapTiler tiles. You pick one on the settings page.

Is it translation ready?

Yes. A languages/w2dc.pot template is included; translate it with any standard gettext/PO editor.

How do paid listings and membership plans work?

Paid submission, membership plans and WooCommerce checkout come with the full version of Web 2.0 Directory, not the free edition.

My Expectations

By charlesluck59 on December 6, 2024

Whenever I’m faced with a paid version of a free plugin, my expectations usually circle the drain. And when I’m dealing with free plugins, knowing that this is an ecosystem of people that includes needy users who don’t really know what they’re doing, it can spawn very frustrated and “rude” support, especially when corners were cut on the documentation.

Very good support

By Daniel (danielschwarz) on May 16, 2024

The plugin works well and does what it's supposed to. The support from the author is very good, with a quick response.

Good plugin, Rude support

By shemakeswebsites on February 19, 2024

The plugin itself isn't bad. Dated compared to the competition but robust.

Rated low for the developers conduct. He is very rude, arrogant, unprofessional and impatient. This is the first time I've encountered a developer who gets "annoyed" when you reach out for support. What a shame - thanks a lot Mihail!

EDIT: Because this author did not like my review they contacted my client publicly on Facebook with half-truths and also left me a bad review on my Google business profile. This has been a truly disappointing experience - do not deal with unethical people, it's not worth your time!

Can not mobile responsive Custom Home1

By anybooking on September 28, 2023

Plugins is very good for directories, but there is responsive issue, please solve the issue asap.When I see in mobile or in Tablet view the Map placed below the search form which I can not reverse.

Used as a Database

By jayrtfm on September 18, 2023

I am using the free version to make a database of social VR platforms (metaverse). I am also using it as a database for places in the metaverse, and for various software. There's over a hundred aspects that need to be searchable. The categories are allowing me to easily separate out the types of databases, and the search forms are allowing me to make clear searches. With a few tiny tweaks this could easily be marketed as a general database plugin. So far I have not run into any show-stopping bugs or lack of features.

The plugin is good and not difficult to set up.

By vitos313 on December 23, 2022

The plugin is good and not difficult to set up. But I can't figure out how to make the photo upload field required. Can someone help me?

Map on demand

By ashiiii on June 23, 2022

we are using paid version of plugin and want to know some tip on how to load the map on lisring page on demand only? Say on a click of an image we want google to be called for map any help

best of all for WordPress directory sites

By webmaster67 (bigbear67) on January 17, 2022

Hello everyone. I have been looking for a long time for the best way to build a directory. today I found. after buying several licenses for directories, I will keep this one. it is not possible to do better, except perhaps on the translation side, there are still a few operational details that I am looking for, (require registration before publication.) but for the rest it works really well. I am very demanding, but it works with elementor which is a real plus. on the google code side, it's simple and quick to integrate. I really hope it will continue because I would not want to change it..

Doesn't uninstall properly

By Mikko Saari (msaari) on August 25, 2021

This plugin does zero cleanup after uninstall. It leaves all the options and custom posts it has created in your database. After you uninstall, you have to spend a while cleaning up the mess this plugin left on your site.

Misleading demo (not same as free plugin options)

By wordmax on February 27, 2021

This is a really nice script, well thought out, but unfortunately the demo link for the free plugin here is a bit misleading. Why? The demo for this free wordpress plugin shows the ability to submit a listing. However, this feature is not available in the settings for the free plugin available at wordpress.org. Developer needs to fix this and show true capabilities of the free plugin.

2.2.2 – 2026-09-14

  • New: the search can be kept in the page address. Turn it on for a search form and whatever the visitor searched for is added to the address, so a filtered result can be bookmarked, sent to someone, or opened in a new tab and come back exactly as it was. Off by default, so a form meant to start clean every time is unchanged. A position found with “Find my location” is rounded to about a hundred metres before it goes anywhere near a shareable link, and a filtered address is marked as one search engines should follow but not index, so one page does not turn into thousands of near-duplicates.
  • New: the filters currently in force are shown above the results, one chip each, and a click on a chip drops that filter and searches again. Every filter appears there whatever set it: a dropdown, a slider, a saved draft, or a link somebody sent you. Several categories give several chips, so dropping one does not drop the rest. The chips describe the search that actually ran, not whatever is typed into the form at that moment.
  • New: the search element of a directory carries the same “keep the search in the address” switch as the search form of a map, set per element in the directory builder.
  • New: a phone number and an email address on a listing are now links: the number dials, the address opens a mail window, and a number whose mode is set to WhatsApp, Viber or Telegram opens that app instead. This works everywhere a field is shown – the cards in a list or a grid, the map popups and the listing page. The three messenger links are only built from a number written in international form, one that starts with + or 00, because none of those services checks what it is handed: a number missing its country code is not refused, it is read as belonging to another country, and the visitor is put through to a stranger. Such a number is left as plain text in those three modes; as an ordinary phone number it still dials.
  • New: a Relevance order in the sort list. When a phrase is searched the results are ranked by how well they match it, which they always were, but the dropdown went on saying “Newest first” while showing something else. Relevance now appears as its own row while a phrase is being searched, is selected on its own when a new phrase arrives, and disappears when the phrase does. Where an address is searched too, distance still wins: a named place is the more specific request.
  • Improvement: Tools, Site Health now answers “can this server reach the services this site uses”. Every key on a WordPress site is checked by a request made FROM the server, so when those requests cannot leave the building – most often because wp-config.php blocks them – every key test fails in a way that looks like a rejected key. The new check names the exact cause instead: the setting doing the blocking, the address to allow, a missing or ancient connection library, or a name that does not resolve.
  • Improvement: the key tests on the settings screens say the same thing before they blame a key. Testing a map-engine key or the reCAPTCHA keys now starts by checking that this server can reach the service at all, so a blocked host is reported as a blocked host rather than as a key that does not work.
  • Improvement: a keyword search now matches ANY of its words, closest matches first. Every word used to be required, so a single word no business writes about itself emptied the page: “shopping up to 100 dollars” asked for listings containing “dollars” and returned nothing, out of a hundred that matched the rest of it. Listings matching the whole phrase come first, then those matching part of it. The suggestion lists that appear as you type still require every word, or they would grow while you type instead of narrowing.
  • Improvement: pressing Enter in the keyword or address box runs the search. The form carried no submit control, so the key most visitors try first did nothing at all.
  • Fix: a radius search no longer loses its circle or jumps the zoom. After a successful search the map was put back to the zoom saved with it whenever the two were more than two levels apart, and a wide radius at that zoom is several screens across, so the ring sat off-screen and read as gone; for a related reason the centre moved on some searches and not on others. The map now frames the searched circle, and only when that circle has actually moved, so running the same search again with another filter changed leaves the view where you put it.
  • Fix: the expiration emails are being sent again, and listings past their date are being expired again. The hourly check looked for the expiration date under the key the plugin used to write and stopped seeing the one it writes now, so a listing submitted, imported or edited after the update dropped out of it entirely: no pre-expiration notice, no expiration notice, and no change of status. It now reads both, so listings of either vintage are found.
  • Fix: a listing the hourly check expires is now recorded as expired everywhere the plugin looks, rather than under one of the two status keys, so the badge and the front-end filtering agree about it.

2.2.1 – 2026-09-07

  • New: the sticky badge is now per plan. Each plan can carry its own badge text, “Featured” if you leave it empty, and its own badge colour, picked right under Sticky listings. Leave the colour alone and the badge looks exactly as it always has; choose a pale one and the text switches from white to dark by itself, so the badge stays readable whatever you pick. The map popups, the grid cards, the map sidebar and the slider all show the same badge, because they all now build it from one place.
  • New: form templates can be duplicated. Every row in Form Builders now has a “Make duplicate” link, the same one the Maps list has: it copies the layout into a new template, opens it, and leaves the original alone. Building a variant no longer means rebuilding the form by hand.
  • Improvement: the summary labels on a plan row stay visible while the plan is open. They used to vanish the moment you expanded the row, which is exactly when they are worth having: the settings they summarise are spread over several groups, and the labels are the one line telling you what the plan now adds up to.
  • Improvement: the listing-page element is now called “Images & Videos gallery”. Videos attached to a listing appear in that same gallery, after the images, and the old name sent people looking for a separate video element that does not exist.
  • Improvement: the listing form calls the field “Images & Videos” only while videos are actually switched on for it. Set Max videos to 0 and the video box disappears, so the heading goes back to “Images” rather than offering something the form does not have. A name you typed in yourself is left alone.
  • Improvement: saving now says what it saved. Instead of a bare “Saved”, the Plans screen reports how many plans were written and how many were already up to date, so a save that had nothing to do is no longer indistinguishable from one that quietly failed.
  • Improvement: the plan editor leads with “Highlight this plan on submission table” instead of burying it below the other display settings, and two lines of help text that only restated the field names above them are gone.
  • Fix: a listing video with no preview image is shown instead of being dropped. The listing gallery left such videos out entirely, so a listing could have three videos attached and display none of them. A YouTube preview is now worked out from the link itself, and a video that genuinely has none gets a play panel rather than vanishing.
  • Fix: the Plans screen no longer loses your edits to the main Save Changes button. The tab used to carry its own separate save buttons, and the big Save Changes at the top of the page saved only the settings: it reported success and dropped every plan edit. There is one save for the whole page now, and it writes the plans, the plan changes table and the settings together.
  • Fix: saving a plan on a large directory no longer times out. Any edit to a plan re-indexed thousands of its listings inside the same request, so past a certain size the save never finished at all. Only the two settings that actually affect listing order and rating display cause a re-index now, and even then most of the work is spread over later page loads instead of the save itself.
  • Fix: plans whose feature list had been replaced by the single word “Array” are cleared on upgrade. An earlier saving bug overwrote those lists, and the leftover word was being shown to visitors as a feature on the plan cards and the pricing table. The original lines cannot be brought back, so such a plan now simply lists no features of its own until you write them again.
  • Fix: the self-test no longer says a directory page may render blank when it is rendering perfectly well. It looked only for the name of the script file, which caching and minifying plugins routinely rename, so a healthy page failed the check and the cure it suggested, “Always load front assets”, could not have changed anything. It now checks whether the directory itself is on the page, tells you which of the two is actually missing, and gives the fix that matches.
  • Fix: plans migrated from Web 2.0 Directory keep the limit on which custom fields their listings may fill. That limit was not carried over at all, so every migrated plan came out allowing every field, and a plan that allowed no custom fields at all came out allowing all of them – looser than the level it replaced, with nothing to say so. It is now translated during the migration, and a site that migrated before this release is repaired by itself the next time an administrator opens wp-admin. A plan whose fields you have already set by hand is left exactly as you set it.
  • Fix: editing a directory no longer reverts plan settings that were changed somewhere else. The Edit Directory screen re-sent every setting of every plan it offers, using the values it had read when the page was opened, so saving anything there – even a layout change that touched no plan – quietly rolled back whatever had been altered meanwhile in Settings, Plans or in a second tab, on a plan every other directory shares. It now sends only what you actually changed on that screen, the same rule the plan name already followed.
  • Fix: turning Sticky listings on or off no longer takes the directory sort index out of service. Flipping it on a plan with more than a couple of hundred listings used to re-index them a few hundred at a time and hand the rest to a background crawl, and that crawl switches the fast ordering path off for the whole site until it has walked every listing – so on a large directory the edit meant to put listings on top was itself what stopped them getting there, sometimes for hours. The sticky flag is one value per listing, so it is now written directly in a single step, however many listings the plan has, and the index keeps serving throughout.
  • Fix: re-running the import no longer detaches the plans from your directories. The import seeds the plan offer of each directory, along with its categories and locations, from the legacy record, and it rewrote all three on every run – so a second run replaced whatever you had attached since with whatever the old record still said, and emptied the offer outright when that record listed nothing. Listings kept their own plan, but the editor showed them as having none, because that plan was no longer among the ones the directory offered. All three are now written only for a directory that has no value for them yet, which is the rule the listing template and the submission switch already followed.
  • Fix: the buttons the map draws on your pages are no longer flattened by the theme. Their colours were set by single-class rules, which carry exactly the same weight as the “button” reset most themes ship, so whichever stylesheet loaded last won – and a theme always loads after a plugin. On such a theme the sidebar tab, the search-form buttons and the close and Get-directions buttons in the map panels came out with a see-through background, the theme link colour and a stray border. Those rules now name the element as well as the class, which puts them out of reach of that reset without resorting to !important, so the controls keep the colours you picked in Customization.
  • Fix: Reset, Everything now really does drop everything. It cleared the two tables the mapping engine creates but left the directory sort index behind, so a reset meant as a clean slate kept an index full of ordering rows for listings it had just deleted. The wording on that screen also named tables it was not touching; it now says what it does.
  • Fix: the import no longer brings expired listings back to life. It republished every listing that had already expired and threw its expiry date away, so paid listings that had run out came back as current premium ones, with no date left and no copy of the old one anywhere. Dates and statuses are now left exactly as they are, and a listing that carries no date at all expires according to its plan.
  • Fix: the coordinates in a listing structured-data block are written as plain numbers again, for example -17.95834 rather than -17.95833999999999974761522025801241397857666015625. Some servers are set to print floating-point numbers at full binary precision, which made the block far larger than it needed to be; the plugin now asks for the normal short form while writing its own data, and rounds coordinates to five decimals as the rest of the plugin already does.
  • Fix: category and location archive links now point at a directory that actually holds listings in that category. Every term was linked under one directory, so an XML sitemap listed all of them under the same base – restaurant categories filed under the accommodation directory, for example. The base is now worked out from where the listings really are; while a visitor is browsing inside a directory the links keep pointing there, as before. After updating, rebuild your SEO plugin data (in Yoast: SEO, Tools, Optimize SEO data) so the sitemap picks up the new addresses.
  • Fix: a page whose own canonical could not be worked out no longer ends up with no canonical at all. The plugin removed the SEO plugin version before adding its own, and skipped the adding step when it had nothing to add.
  • Fix: a new form template is now saved as a new template instead of overwriting an existing one. On “Add New Template” the builder was handed the id of the first form template on the site, so Save wrote the new layout over that one and renamed it to whatever you had typed, while the template you thought you were creating stayed an invisible draft that never reached the Form Builders list. The builder now works on the template you actually opened, a new one is published under the name you gave it, and a save aimed at a template that no longer exists reports an error instead of writing somewhere else.
  • Fix: pressing Enter in the form builder no longer runs a WordPress post save behind it. The builder sits inside the WordPress post form, which keeps a hidden save button to own the Return key, so Enter in the name or slug box saved an empty post rather than the layout.
  • Fix: listing, category and location pages now show their own title, description, link and share image with every SEO plugin, not only some of them. Yoast, Rank Math, All in One SEO, SEOPress and The SEO Framework each produced a different mix before, from everything to nothing, and some of them left a second set of social tags behind as well.
  • Fix: the share image on a listing page is no longer missing. A listing with no logo set now uses the first of its own photos, so a link to it previews with a picture instead of the site logo or nothing.
  • Fix: search engines now read the right structured data on a listing, category or location page. The SEO plugin was describing the page the directory renders on rather than the listing itself, and that description is now the listing’s own; the site-wide details you set in the plugin are left as they are.
  • Fix: dropdowns in the form builder now fill their column instead of stopping partway across it. wp-admin caps every dropdown at a fixed width, so once the Field Properties panel was widened past that cap, controls such as “Display as” were left cut off with empty space beside them.
  • Fix: a greyed-out field in the form builder palette now says why. A core field is greyed out once it is already in the form, but nothing said so, and a form built before the Images field was renamed still carries the old “Images” label – so the entry you were trying to add did not look like the one already there. Hovering a greyed-out entry now shows “Already in this form”.
  • Fix: undo in the form builder now reaches the plan checkboxes and the “Show for all categories” box. The plan selection was outside the history altogether, and the categories undid correctly while only their checkbox lied, so a field could show as limited to plans or categories it was no longer limited to.

2.2.0 – 2026-08-31

  • New: every email in Settings, Email notifications now has its own Subject line you can edit, and its own switch to stop sending it. That covers all ten: the activation, expiry and pre-expiry emails, the new-user welcome, the two admin alerts for new and edited listings, the approval email and the three claim emails. Leave a subject empty to keep the built-in one. The [tags] work in the subject as well as the body.
  • New: the plans table tells you at a glance what each plan is. A collapsed row now shows how long a listing stays live, whether it is limited to certain roles, whether its listings are sticky, and whether it allows all categories and locations or only some. The plan name box is a fixed width so those labels have room.
  • New: the “Videos number” limit in the Plans constructor now defaults to 3 for new plans.
  • New: the Images field is now “Images & Videos” – attach a YouTube or Vimeo link (short or long form) alongside your photos. Video previews show a play icon in the listing gallery and open in the same lightbox as images, now with a built-in player.
  • New: CSV import/export now carries video links and captions the same way it already does images.
  • New: CSV Import -> Demo tab can now download the demo content archive (sample listings and photos) from salephpscripts.com, so you can try the demo the same way as the full version.
  • New: the Slider element can show a set number of slides at once – “Slides per view”, with a separate value for phones (one by default, since three side by side are unreadable). Leave it at 0 to keep sizing slides by height as before.
  • Improvement: the Email notifications tab is easier to read: each email now has its own heading, with its on/off switch and timing setting grouped under it.
  • Improvement: the directory self-test is more honest. It now counts your listings (nothing did before, so a site with none came back all green), names the exact page it tested instead of silently testing a different one, says when a check could not run rather than staying quiet, and no longer suggests a fix that could not have worked on a page-builder page.
  • Improvement: no admin screen loads an icon from an outside server any more. Those icons were emoji, which WordPress swaps for images hosted elsewhere; they are now drawn from the icon font the plugin already ships.
  • Fix: the radius slider in the search form showed as a bare circle with no track on themes that strip the native styling from form controls (Hueman and others). It now draws its own track and handle, so it looks the same whatever the theme does.
  • Fix: “Save plans” in Settings, Plans no longer fails with “There has been a critical error on this website.” The screen re-saved every plan on the site each time, and each one re-indexed up to 5000 of its listings, so the request ran out of time or memory. A plan you did not touch is now left alone.
  • Fix: saving in Settings, Plans no longer wipes the feature list of every plan. The list was being stored as the single word “Array”.
  • Fix: server replies now read as a plain sentence with a status code and a pointer to the error log instead of raw HTML, on every admin screen and on the front-end listing and contact forms.
  • Fix: the Edit Listing screen now saves everything you set on it, including plugin boxes such as Yoast (rich text ones too), the permalink, Author, Published on, Discussion settings and a status change made in the Publish box.
  • Fix: the SEO title and description you set in Yoast, Rank Math or All in One SEO now appear on listing, category and location pages, with the SEO box present on the Edit Listing screen and listings listed in the SEO plugin’s own settings.
  • Fix: the Edit Directory screen tells you when something failed. A failed Save, Export or Add page was recorded and never shown, and a directory that failed to load left an empty page builder with no explanation at all. You now get the reason, with a Reload button when the directory could not be loaded.
  • Fix: a plan is no longer renamed from the Edit Directory screen. The same plan can be offered by several directories, so typing a new name there quietly renamed it for all of them. A saved plan now shows its name as plain text and is renamed in Settings, Plans; a plan you are still creating can of course be named on the spot.
  • Fix: a category or location page no longer emits duplicate, conflicting SEO structured data (Yoast/Rank Math) alongside the correct one; a category/location with no description now gets a sensible default instead of none.
  • Fix: migrating from the old plugin now also brings over any videos attached to a listing, including their captions – a one-time catch-up covers sites that had already finished migrating before this update.
  • Fix: the meta description no longer comes out with a non-breaking space between every word on listings whose text was pasted from Word, a PDF or another site.
  • Fix: an Address field that collects only Country / State / City through the dropdowns – with “Enter address fields” switched off – can be submitted again. It answered “Address is required.” no matter what you picked, because the check still asked for a street line the form did not offer.
  • Fix: a directory page built with Elementor showed nothing. Elementor keeps its widgets outside the page content, where the plugin was not looking, so the page never loaded the script that draws the directory. Pages built with WPBakery or the classic editor were never affected.
  • Fix: the quotes around a listing title no longer arrive as " in the activation email subject.
  • Fix: the Search and Reset buttons in the search form fill their slot again. A theme that resets button widths (Hello Elementor and others) shrank them to the width of their own labels.
  • Fix: the current page in a listings pager takes your directory colour instead of a fixed blue.
  • Fix: the page area in the directory constructor no longer shows a scrollbar when the page already fits on screen.

2.1.3 – 2026-08-25

  • New: an option to convert imported images to WebP during CSV import (in the import step) – WebP files are typically 25-35% smaller than JPEG; skipped automatically if the host’s image library can’t write WebP.
  • New: set a specific expiration date – or “Never” – for any listing right on the Edit Listing screen. Your choice overrides the plan and is kept when the plan changes; leave it on “Default” to follow the plan as before. The “Listing status” and “Listing Info” boxes are now merged into one.
  • New: the directory list view now lays out each listing as a row – a fixed-width image on the left, details on the right – instead of a single-column grid. Set the list image width per directory in Edit Directory Listings; the image keeps the Card image ratio you chose.
  • New: when you search by address + radius, sort the listings by “Distance” (nearest first), and every listing card shows its distance from the search point – matching the map popups and sidebar.
  • New: limit how much of the Content field shows on directory cards (Edit Directory Listings Card fields, default 25 words, 0 for no limit), next to the existing Rating icon-size control.
  • Improvement: a listing’s status now shows as a coloured badge on the Edit Listing screen, matching the listings table.
  • Improvement: filter the listings table by the “Paused” status, and the Directory / Plan column shows “All directories” for a listing that appears in every directory.
  • Improvement: the Listing history now records plan changes and expiration-date changes, whether made by hand or automatically (auto-upgrade, renewal).
  • Improvement: pause or resume a listing from your front-end dashboard too, and the “Change expiration date” screen now uses the same Default / date / Never control.
  • Improvement: searching or browsing a directory by category, location or tag is much faster on large directories – it now uses the directory sort index (the same fast path as sorting and the opening-hours filter) on both the map and the listing grid, instead of a full database scan.
  • Improvement: the “Maps Reset” tool’s destructive options (listings/maps/templates, or everything) now require typing DELETE to confirm, on top of the existing warning.
  • Fix: logging in, registering, resetting your password and logging out now work correctly on a site with no separate Dashboard page.
  • Fix: search form fields keep a consistent height regardless of the active theme.
  • Fix: a directory search now stays scoped to its own directory when the page carries more than one directory block (e.g. a separate mobile layout).
  • Fix: paused or expired listings no longer stay visible in the directory (list and map) after being re-published from Quick Edit, a bulk action or another plugin.
  • Fix: map marker coordinates are sent to the browser at normal precision again (some server configurations were appending a long trail of decimal places).
  • Fix: the Opening hours field again shows a green “Open” / red “Closed” badge, with correctly coloured day labels, on listings and in map popups.
  • Fix: the Edit pencil next to a listing’s title (on cards, in map popups and in the map sidebar) is shown again to signed-in users who can edit that listing – the public map’s cache-friendly requests were dropping the sign-in check.
  • Fix: a listing that has expired can no longer be paused or resumed (from the Listing Info box or the front-end dashboard) – an expired listing must be renewed. Pausing an expired listing used to hide its expired state, and resuming could put it back on the front end past its expiration date.
  • Fix: a migrated custom field (or list option) whose icon was an uploaded image no longer shows a broken icon – the fix now also cleans up sites that were migrated earlier, and covers the per-option icons of list fields (dropdown, radio, checkbox), not just the field’s own icon. Affected fields fall back to no icon.
  • Fix: after migrating from the old Web 2.0 Directory, a category or location link could route to an obsolete page (an old ?page_id= URL) instead of the directory’s own address. The router now ignores leftover host-page entries whose directory no longer exists, and a one-time cleanup removes those stale entries.
  • Fix: a listing’s own image gallery (grid or slider) always opens the click-to-view lightbox now, regardless of the “Enable image lightbox” setting – that setting still controls map popups and the sidebar.

2.1.2 – 2026-08-19

  • New: an “Always load front assets” option (Settings Advanced JavaScript & CSS) loads the directory’s JavaScript and CSS on every page, so a [webdirectory] or [webdirectory-map] shortcode placed in a page-builder header, footer, widget or dynamic template (Divi, Elementor …
Back to top