Skip to content
GPLWP Guides

How to create an online directory in WordPress

Directories & Listings Time About 30 minutes for a basic directory, or 1–2 hours for a configured directory plugin 6 steps Updated 24 Oct 2026

DIRECTORIES & LISTINGS
The short answer

You can build a small, curated directory with WordPress posts or pages, categories, custom fields and a directory landing page. For searchable listings with location filters, maps, front-end submissions, reviews and moderation, use a directory plugin because WordPress does not provide those features together.

The route
  1. 01Define the listing structure
  2. 02Build the basic directory manually
  3. 03Create listing fields and filters
  4. 04Set up listing pages and navigation
  5. 05Add submissions and moderation
  6. 06Use the fast plugin route

What you need

  • A WordPress site with administrator access
  • A clear list of listing fields and categories
  • Listing content, images and location details
  • A backup or staging site before installing new functionality

Define the listing structure

Decide what each listing must contain before you create anything. Typical fields include name, description, category, address, phone number, email address, website, opening hours, image, price range and a map location.

Keep categories broad enough to be useful and use locations as a separate grouping. For example, use Restaurants as a category and Manchester as a location. Do not create a separate category for every combination, or the directory becomes difficult to maintain.

Build the basic directory manually

For a small directory that you maintain yourself, create each listing as a WordPress post or page. Use categories or a custom taxonomy to group entries, add the listing details in the editor or custom fields, and use a featured image for the directory card.

Create a directory page that links to the listings, then add category or location archive links to help visitors browse. This manual route is fine for a short, curated list, but WordPress does not provide an advanced directory search, map-based filtering, front-end submissions, listing claims or a dedicated review workflow by itself.

If you need a proper custom post type, register it in a plugin rather than a theme so the listings remain available when the theme changes. WordPress recommends custom post types for separate content types and supports custom taxonomies for grouping them.

Create listing fields and filters

Whether you use a custom post type or a directory plugin, make the important data structured rather than burying it in the description. Add separate fields for address, phone, website, price, opening hours and coordinates where needed. Use taxonomies for values visitors will filter, such as category, city or service type.

Test searches with partial names, empty fields and more than one filter. A common failure is showing a field on the edit screen but not including it in the front-end search query, so confirm that each filter actually changes the results.

Set up listing pages and navigation

Publish an archive or directory landing page with a search box, category links and a clear listing layout. Each listing should have a dedicated page with the name, contact details, description, image, location and a clear call to action.

After changing custom post type or listing URL settings, visit Settings → Permalinks and select Save Changes. WordPress needs its rewrite rules refreshed after URL structures change; otherwise listing pages can return a 404 error.

Add submissions and moderation

If other people will add listings, use a front-end submission form rather than giving them dashboard access. Configure whether submissions are published immediately, saved for review or require an account, and decide who can edit or delete a listing.

Keep moderation enabled until you have a reliable process. Check website addresses, phone numbers, duplicate entries, misleading claims and uploaded images. If you add reviews, moderate them separately and test what happens when a listing is deleted or unpublished.

Use the fast plugin route

For most business, local or niche directories, install the Web Directory plugin for WordPress, activate it and follow its setup screen. Configure the listing fields, categories, locations, search filters, map display, submission rules and review settings, then create a few sample listings before importing or accepting real entries.

This route is faster because the directory functionality is provided in one system rather than assembled from custom post types, fields, templates, forms, map integration and review tools. Its advertised features include custom layouts, category and location search, Google Maps integration, responsive listings, user submissions, ratings, SEO-friendly URLs and import/export tools.

Before launch, test a visitor search, a mobile listing page, a failed submission, a moderated submission, a review and a map location. Also check that your theme does not hide the search controls or submit button on smaller screens.

The fast route

Let Web Directory plugin for WordPress do it

All-in-one listings, search, maps, submissions, and reviews for building a business or niche directory.

Get Web Directory plugin for WordPress

Tools that do this job

All of these solve the task above. They are listed as we have covered them.

Our pick
Web Directory plugin for WordPress

All-in-one listings, search, maps, submissions, and reviews for building a business or niche directory.

Get it
Javo Directory

Directory-focused theme with searchable listings, maps, filters, and user submissions for building a complete online directory.

Get it

Sources

  1. developer.wordpress.org /plugins/post-types/registering-custom-post-types/?utm_sourc…
  2. developer.wordpress.org /reference/functions/register_post_type/?utm_source=openai
  3. wordpress.org /documentation/article/taxonomies/?utm_source=openai

Questions

Can I create a WordPress directory without a plugin?
Yes, you can create a small directory manually with posts or pages, categories, custom fields and a directory landing page. The manual approach works when you control every listing and only need browsing. You will need custom development or several separate tools for advanced search, location maps, front-end submissions, reviews, claims, payments and moderation.
Should directory listings be posts, pages or a custom post type?
A custom post type is usually the cleanest choice because listings are a distinct content type with their own fields, archives and templates. Posts can work for a small directory, while pages are suitable for a short hand-maintained list. If you register a custom post type, place it in a plugin rather than a theme so changing themes does not remove the listing structure.
How do I add categories and locations to directory listings?
Use taxonomies for values that visitors need to browse or filter, such as business type, city, region or service. Create the taxonomy terms first, assign them to each listing, and expose them in the directory search or archive links. Keeping categories and locations separate prevents a large, confusing list of combined terms.
Why do my new directory listing URLs show a 404 error?
A 404 usually means WordPress has not refreshed its rewrite rules after the listing post type or URL structure changed. Go to Settings → Permalinks and click Save Changes without necessarily changing the selected option. Also check that the listing type is public, has a valid archive or rewrite setting, and is not using a slug that conflicts with an existing page.
What is the quickest way to add maps, submissions and reviews?
Use a directory plugin that includes those features instead of building each one separately. Configure the listing fields, search and location settings first, then enable front-end submissions and reviews with moderation. A plugin-based setup is usually the practical choice when visitors, businesses or members will manage listings rather than one administrator.