The plugin in question enhances user experiences by providing a robust system for managing custom post types within WordPress. Offering seamless integration with GeoDirectory features, it empowers users to create, organize, and display content efficiently. With a focus on flexibility and user-friendly functionalities, it serves as a valuable asset for optimizing content structuring and presentation. Leveraging this plugin significantly streamlines the process of incorporating custom post types tailored to specific needs, making site management more intuitive and effective.

Plugin Version: 2.3.19
 
WordPress plugin GeoDirectory Custom Post Types

Plugin Features

Its seamless integration with the GeoDirectory ecosystem enables users to effortlessly integrate customized post types into their websites. By extending the core functionality of WordPress, it facilitates the creation of diverse content structures, enhancing the overall organization and accessibility of information. Through its user-centric design and comprehensive features, it empowers website owners to tailor their content presentation to meet the unique requirements of their target audience effectively. This versatile tool opens up a wide array of possibilities for content customization, allowing for a more personalized and engaging user experience.

The plugins intuitive interface simplifies the process of creating and managing custom post types, offering users a seamless experience when structuring their content. By providing a range of customizable options and settings, it ensures that users have full control over the display and functionality of their content types. This level of customization fosters creativity and innovation, enabling website owners to design engaging and interactive web pages that resonate with their audience. With its robust set of features and user-friendly interface, it empowers users to transform their websites into dynamic and engaging platforms that cater to their specific needs effectively.

With its focus on enhancing user interactions and optimizing content organization, GeoDirectory Custom Post Types serves as a valuable tool for website owners looking to create engaging and dynamic websites. By allowing for the seamless integration of custom post types, it enables users to showcase their content in a structured and visually appealing manner. Its extensive range of features and configurations empowers users to design compelling content layouts that resonate with their audience. Whether creating portfolios, directories, or any other custom content type, this plugin offers the flexibility and functionality needed to bring creative visions to life on the web.

In conclusion, the plugin represents a powerful asset for WordPress users seeking to enhance their websites with custom post types. By seamlessly integrating with the GeoDirectory platform, it offers a comprehensive solution for content management and presentation. Its user-friendly interface, customizable options, and seamless integration make it a valuable tool for optimizing content organization, improving user experiences, and enhancing the overall functionality of WordPress websites. Website owners looking to elevate their online presence and engage their audience with compelling content will find this plugin to be a versatile and indispensable addition to their toolkit.

Specifications:

Release date: 11-10-2020
Last updated: 20-08-2026
Type: Paid
License: GPL 
Subject: Maps & Weather for GeoDirectory
Compatibility: W5.x W6.x
Includes: Plugin
Language packs: English
Developer: GeoDirectory

Rating:
4.4716981132075 1 1 1 1 1 (212 Votes)

Download by subscription!

You need to log in on the site and purchase a club subscription!

Share with your friends!

 

Guide to Using and Configuring GeoDirectory Custom Post Types

GeoDirectory Custom Post Types is not meant for cosmetic tweaks to listing cards. It is meant to reshape your directory logic: instead of one shared post type, you create multiple separate listing types, each with its own fields, categories, tags, templates, submission pages, relationships to other types, and display blocks. In this guide, we will walk through how to plan that structure, install the extension, create your first post type, connect it to other entities, and verify the result on your site.

GeoDirectory Custom Post Types guide cover with a map of post types
The cover highlights the core idea behind the extension: an administrator turns one general-purpose directory into multiple manageable listing types that produce different outcomes across the site.

This guide is for a WordPress directory owner, webmaster, or editor who already understands the basics of GeoDirectory and wants a deeper structure, for example, separating doctors, clinics, and services; companies, jobs, and events; or properties, developers, and agents. We will not cover purchasing, license entry, or checkout. The focus here is the practical setup of an extension you already have and verifying that the new post types behave predictably.

The biggest mistake with this product is starting with the Add New button before thinking through the data model. In GeoDirectory Custom Post Types, a new CPT can appear in the admin quickly, but a bad slug, unnecessary required fields, accidentally disabled geolocation, or a weak relationship between types can later turn into URL, search, import, template, and user support problems. So first we will look at the architecture, then move on to the settings.

What Changes in the Directory After Adding New Post Types

In a standard GeoDirectory setup, the plugin works with a base directory entity often referred to as Places. That is enough for a simple business directory, but it gets restrictive fast when the site starts handling different classes of content. A restaurant, doctor, clinic, event, and online service can all be listings, but they require different fields, different search filters, different detail pages, and different user expectations.

GeoDirectory Custom Post Types adds a layer that separates those entities into distinct WordPress post types. Each new type gets its own menu inside the GeoDirectory admin, its own categories and tags, its own form builder, separate add listing settings, archive pages, archive card templates, and detail pages. That matters because this is not just a new menu label. It is a way to manage the data structure by object type.

In practice, this changes four things.

  • The submission form becomes separate for each type. For doctors, you can ask for specialty, years of experience, and accepted insurance, while clinics can have departments, office hours, services, and booking terms.
  • Categories and tags no longer get mixed across unrelated entities. A category like "Cardiology" does not need to live next to "Conferences" if events are moved into a separate post type.
  • Templates can reflect the actual context. A clinic detail page can show a map, departments, and related doctors, while a doctor page can show a profile, schedule, specialty, and connected clinic.
  • Search and widgets can be configured more precisely. When paired with Advanced Search Filters, each type can get its own filter set, and blocks like GD > CPT Listings and GD > Linked Posts help display navigation and related entries.

Quick takeaway: this extension works best as a directory modeling tool. If your site remains a one-format directory, a new CPT may be unnecessary. If your entities have different fields, relationships, and search scenarios, separate post types usually give you a cleaner structure.

Who This Extension Fits and When It Is Better Not to Overcomplicate the Site

GeoDirectory Custom Post Types is a strong fit for projects where one directory needs to handle multiple distinct entities. That does not have to mean a large portal. Even a small local site can benefit from separation if users need to distinguish a business from an event, a specialist from an organization, or a physical place from an online resource.

Good use cases

This extension is especially useful for directories where one object is often related to another. A medical directory may store doctors, clinics, and procedures; a travel site may include hotels, attractions, and routes; an education directory may contain courses, schools, and instructors; and a B2B portal may list companies, products, and job openings. In projects like these, a single shared listing type forces you to overload the form with fields that only apply to part of the content.

A separate CPT does not just help the administrator. It also creates a clearer experience for the user: they are not searching through "everything," but through a specific type of result. If your site has sections like "Hotels" and "Events," each can have its own filters, card order, archive page, and contextual copy.

When a separate CPT can backfire

If the difference between objects comes down to category alone, it is usually better to start with categories and fields inside one type. For example, "restaurants," "cafes," and "bars" can often stay as categories within a single type if the form, map, reviews, and search behavior are the same. A new CPT adds extra settings, templates, and URLs. That is an advantage for a complex model and unnecessary overhead for a simple one.

You should also avoid creating a separate post type just for an SEO page or a nicer menu label. Categories, tags, archive pages, GeoDirectory blocks, and standard WordPress navigation are often better suited to those goals. A new CPT makes sense when you need separate data logic: different fields, a different template, a different submission flow, different relationships, or a different search mode.

Who should be involved in planning

Before you configure anything, it helps to have a short discussion between the administrator, editor, and the person responsible for future content. A developer or webmaster can set up the fields, but the editor is usually the person who sees which data will actually be filled in consistently. If a field cannot be filled reliably, it should not be required. If a post type exists only "just in case," it is better to postpone it until real content appears.

What to Check Before Installing and Creating Your First CPT

Preparation matters more here than speed. GeoDirectory Custom Post Types runs on top of GeoDirectory, so a bad structure can affect URLs, templates, submission forms, and user navigation. Before you enable the extension, check not only the technical requirements but also your directory model.

Technical foundation

On the product page, the developer lists the requirements for WordPress, PHP, and the core GeoDirectory plugin. Before installation, compare those with your site's actual setup and make sure the main GeoDirectory plugin is already configured: the base pages exist, permalinks have been checked, there is at least one test listing, and the path to GeoDirectory > Settings is clear.

If the site is already live, create a backup of both the database and files. That is especially important before changing slugs, templates, or geolocation settings. On a brand-new test directory, you can work more freely, but on a live project it is safer to repeat the setup on a site copy first.

Data model

Build a table of future post types before you click Add New. It should list working directory entities, not marketing labels.

Decision map before creating a new CPT
Question What to decide in advance Why it matters
How is this type different from your existing entries? Fields, categories, template, search behavior, submission permissions. If there are only minor differences, a separate CPT may make the directory more complex without adding value.
What will the slug be? Short, stable, easy to understand, with no temporary wording. The slug affects URLs, archives, links, and potential 404 errors after changes.
Does it need a physical location? Yes, no, or a mixed mode with an optional address. Disabling physical location for a CPT can remove address data if applied incorrectly.
What relationships are needed? For example, a doctor is related to a clinic, or an event is tied to a venue. Relationships are better designed before content entry begins, so you do not have to rework the form later at scale.
Who will add entries? Administrator, editor, users through a public form, or trusted authors only. This affects required fields, helper text, moderation, and protection against low-quality data.

Permalinks and slug conflicts

Check whether the future slug is already used by a WordPress page, category, old archive, WooCommerce product, or another custom post type. For example, if the site already has a page at /doctors/, do not create a CPT with the same public path unless you have a migration plan. The conflict may not show up immediately: the admin can save the setting, but the front end may open the wrong page or return a 404.

Location and maps

If the post type will exist without an address, review both options carefully. For fully online entities, you can disable physical location, but the developer warns that doing so removes address data for that CPT. For mixed types, it is safer to make the address field optional in the custom field settings. This is especially important for directories where some entries have a physical office and others operate remotely.

Pre-launch check: if you cannot clearly explain which fields, templates, and relationships make the new type different from the old one, do not create the CPT yet. Clarify the model first in a document or on a test site.

Installing the Extension and Running the First Check

Installing GeoDirectory Custom Post Types follows the usual GeoDirectory extension workflow. In the admin, that is typically tied to GeoDirectory > Extensions and connecting the site through AyeCode Connect if you use the automatic method. For local sites, the developer documents a separate option through WP Easy Updates. This guide does not cover licensing, but one thing matters: after installation, the extension should appear inside GeoDirectory settings, not just in the general WordPress plugins list.

A safe activation sequence

  1. Confirm that the core GeoDirectory plugin is active and the base directory loads without errors.
  2. Install the extension through the standard GeoDirectory workflow or the manual method from the developer documentation.
  3. Activate the extension and open GeoDirectory > Settings > Post Types.
  4. Make sure the settings section is available and includes an option to add a new post type.
  5. Create a test CPT on a site copy or in a private environment if the structure is not finalized yet.

Once activation is complete, do not rush to migrate live content. First confirm that the menu appears, the settings page works, and the basic parameters save correctly. If the Post Types section does not appear, check whether the core GeoDirectory plugin is active, whether your current user has the right permissions, and whether the base plugin version is compatible with the extension.

What counts as a successful initial check

A successful installation is more than seeing Active in the plugins list. A solid first check looks like this: the settings open correctly, a new type can be saved, a separate admin menu appears for the created CPT, the archive URL does not return a 404 after resaving permalinks, and the submission form shows the fields for that specific post type.

If your site uses caching, clear the page cache and object cache, if applicable, after installation and CPT creation. GeoDirectory v2 was designed with caching in mind, but new archives, menus, and templates should still be checked after cache clearing, especially on a live site with aggressive optimization.

Creating a New Post Type: Slug, Labels, SEO, and Basic Behavior

The GeoDirectory > Settings > Post Types section is the main place where GeoDirectory Custom Post Types setup begins. The documentation says to open the post type settings and click Add New. On the add page, you define the post type name, slug, and additional parameters. This is not a place to copy values at random because some of these decisions are hard to change later without side effects.

Diagram of slug and basic CPT settings in GeoDirectory Custom Post Types
This diagram helps you work through the first setup screen: the system name, public slug, and behavior for reviews, favorites, front-end submission, and location.

System name and slug

The documentation points out restrictions for the post type name: it should be lowercase, use underscores, and stay within the allowed length. In a separate setting, the slug should be short, stable, and use valid characters. In practice, it helps to separate those two values: let the system name stay technical, while the public slug remains easy for visitors to understand.

For a medical directory, you might use the system name gd_doctor and the public slug doctors. For clinics, gd_clinic and clinics. Do not put temporary campaigns, a year, or a region into the slug if the directory may expand later. It is better to choose a path that will survive future sections and not require mass redirects.

How to verify the slug after saving

  1. Open the list of created types and confirm that the new CPT was saved without the name being changed automatically.
  2. Resave Settings > Permalinks in WordPress if the public archive does not open.
  3. Open the CPT archive in a private browser window.
  4. Check that the URL does not match an existing page or another archive.
  5. If you get a 404, resave both WordPress permalinks and GeoDirectory link settings.

Labels and interface text

Labels control how the new type appears in the admin and in user actions: Name, Singular Name, Add New, Edit Item, Search Items, and similar strings. On a multilingual site, these labels matter because users on the public submission form should not see a mix of inconsistent wording.

Do not make labels too long. Short wording works better in menus, buttons, and headings: "Doctors," "Clinics," "Add Doctor," "Edit Clinic." If the site is multilingual, check how those strings will be translated through your chosen localization workflow. GeoDirectory has separate materials on translations and custom fields, but it is still best to lock down the exact wording in a table before launch.

Reviews, favorites, and front-end submission

The settings for a new CPT include options to disable comments, ratings, duplicate reviews, favorites, and front-end submission. Do not enable or disable them mechanically. For example, reviews may matter for doctors but not for legal documents or reference services. Favorites can be useful in a vendor directory, but unnecessary in a closed internal directory.

Disable front-end submission if only an administrator or editor should create entries. Otherwise, test the submission form, required fields, helper text, and moderation flow. A complex CPT with dozens of fields may work well in the admin but feel far too heavy for an average visitor.

SEO overrides and template pages

The general CPT settings include fields for archive page titles and meta descriptions, along with page selectors for Add Listing Page, Details Page, Archive Page, and Archive Item Page. These fields do not replace a full SEO strategy, but they do help establish the basic intent of the section. For each important CPT, it is worth preparing unique archive copy so both search engines and visitors understand what the section contains.

If you change template pages, check the result immediately: the archive, the list card, the detail page, and the submission form. An error in one of those pages can look like a design issue when the real problem is simply that the wrong template was assigned.

Fields, Categories, and Tags for Each Listing Type

The real strength of GeoDirectory Custom Post Types shows up after the form is created. Each CPT has its own form builder, categories, and tags. That means you do not have to force different entities into one overloaded form. But that flexibility turns into chaos quickly if you do not separate required, useful, and purely decorative fields.

How to design the form

Start with one question: what data does the user need in order to choose? For a doctor, that might be specialty, office location, languages, consultation format, experience, pricing, or insurance plans. For a clinic, it might be address, departments, services, office hours, parking availability, and contact methods. For an online service, it may be the link, topic, service format, and supported regions. Do not carry every field from one CPT into another just for the sake of uniformity.

It helps to review each field through a consistent chain: who will fill it in, where it will appear, how users will search by it, what happens if it is left empty, and whether it needs moderation. If a field matters only to an internal editor, you may not want to show it on the public page. If a field affects search, it should be coordinated in advance with Advanced Search Filters or GeoDirectory's search logic.

Required fields and data quality

Required fields help preserve directory quality, but a form that is too strict will reduce the number of submissions. For front-end submission, it is better to require only the information without which a listing cannot be published: title, a basic description, category, contact details, or address if needed. Everything else can be collected after moderation or presented as optional guidance.

If a CPT can exist without an address, do not use irreversible physical location disablement without testing it first. In mixed directories, it is safer to make the address field optional. That way, you can still store addresses where they exist without breaking the form for online-only entities.

Categories as navigation, not a dumping ground

Each CPT's categories should help people search and compare listings. Do not create too many categories before content exists. It is better to start with 8 to 15 clear sections and expand them as the directory grows in real use. If the categories for one post type start looking like tags, it is worth rethinking the structure. Some of those parameters may belong in custom fields or filters instead.

Tags can be useful for looser classification, but they should be moderated. In open directories, users quickly create synonyms and typos. If tags matter for search, set clear rules: who adds them, how duplicates are cleaned up, which tags are hidden, and which remain public.

Connecting the setup to search

If Advanced Search Filters is installed, you can build separate filters for each CPT. The official documentation explicitly shows that the advanced search extension works with CPT settings and lets you add fields to either the advanced form or the main search bar. That is a key point: a new post type should not only store data, it should also help the user find the right result.

Do not put every filter into the main search bar. Fields that matter only to a subset of users should stay in the advanced filter. The main search bar should include only options that are commonly used and easy to understand without extra explanation.

Relationships Between CPTs: Clinics, Doctors, Events, and Venues

One of the most practical features in GeoDirectory Custom Post Types is the ability to connect different post types. This is not just a link in a description. The documentation describes a real workflow where you create two CPTs, add a Link Posts field to the form of one type, configure submission permissions, and then display related entries through tabs and the GD > Listings block.

Linked Posts relationship map for doctors and clinics in GeoDirectory Custom Post Types
This map shows how a relationship field in one CPT form becomes a tab with related entries on the detail page of another CPT.

When a relationship is better than a plain text field

Use a relationship when the connected object should be clickable, verifiable, and reusable. For example, a doctor may work at a clinic, an event may take place at a venue, an agent may be tied to a property, or a company may publish jobs. If you type the clinic name as plain text, the user cannot click through to the clinic listing, and the editor will eventually end up with duplicates and spelling variations.

Relationships are especially useful when you need to show a list: "All doctors at this clinic," "All events at this venue," or "All jobs posted by this company." In that scenario, GeoDirectory uses relationship direction: entries can be Linked From or Linked To. It is important to decide up front which side should choose the relationship in the form and where it should appear.

Basic workflow for setting up a relationship

  1. Create both CPTs that should be connected.
  2. Open the settings for the CPT whose form will be used by the user or editor to choose the related entry.
  3. Go to the custom fields area and add a Link Posts field for the required type.
  4. Configure the field: label, required status, helper text, and advanced permissions if listings from different owners should be allowed or blocked.
  5. Open the tab settings for the second CPT and add related listing output through GD > Listings.
  6. Create a test entry, connect it to another entry, and verify both detail pages.

Tab settings and shortcode configuration

The CPT relationship documentation includes an example where related entries are displayed through GD > Listings using linked_posts="from" or linked_posts="to". The idea is simple: on one object's page, you need to show the list of objects connected to the current entry in the correct direction.

Do not copy the shortcode blindly. Check the post_type, relationship direction, sorting, number of entries, and layout. Inside a clinic page, a grid of doctor cards may work well; on a doctor page, the clinic may be better as a compact list or a single card. If the direction is wrong, the tab may stay empty even though the relationship was saved in the form.

How to verify the relationship without guessing

  • Create two published test entries with obvious names, such as Test Clinic and Test Doctor.
  • Connect them through the form of the CPT where the Link Posts field was added.
  • Open the detail page of the first entry and check the related objects tab.
  • Open the detail page of the second entry and check the reverse output if it is configured.
  • If the list is empty, verify the from/to direction, the post_type, and whether the entries are published.

Templates, Menus, and the CPT Listings Block for Section Navigation

Once a CPT is created, you need to make it visible to visitors. A new post type in the admin does not mean users will actually find it on the site. On the front end, three layers matter: template pages, the navigation menu, and blocks or widgets that help users reach the CPT archives.

Separate templates for different types

The GeoDirectory documentation describes three template pages required for each Custom Post Type: GD Detail page, GD Archive page, and GD Archive Item page. If all CPTs use the same pages, the directory may still function, but the point of separation is lost: a doctor card looks like a venue card, an event archive looks like a company archive, and important fields end up in the wrong places.

A practical approach is to duplicate an existing template first, rename it for the new CPT, and only then assign it in Template Page Settings. That preserves a working base while giving you freedom to change the block composition. For a clinic detail page, it makes sense to show a map, related doctors, and services. For a doctor page, a profile, specialty, reviews, and the related clinic are more appropriate.

WordPress menus and GeoDirectory endpoints

After adding a CPT, the developer recommends going to Appearance > Menus and adding links from the GeoDirectory endpoints section: the main archive and the add listing page for that CPT. This is a simple step, but it is often forgotten. Without it, the new section may exist technically while remaining invisible in the main site navigation.

You do not have to place every CPT at the top level of the public menu. If you have many types, group them: "Directory" with subitems like "Clinics," "Doctors," and "Services." In the footer, you can keep only the primary archives. The add listing link should appear where the user understands the context, for example, "Add Doctor" on the doctors page, not as a generic button with no explanation.

CPT Listings as a visual map of sections

The GD > CPT Listings block displays GeoDirectory post types and can show the name, the image, or both. The settings include options to exclude specific CPTs, define image width and height, and control display conditions. That makes it useful on the directory home page, in a sidebar, or in a "Choose a listing type" section.

Do not use this block as a decorative grid. Its job is to give visitors a quick route into the directory. If you have five CPTs or more, it helps to add a short introduction explaining how the sections differ and where to start. If you have only two, ordinary text links in the menu may work better than a separate visual block.

Example of linking CPT Listings settings with GeoDirectory front-end navigation
This visual shows how separate post types feed into the menu, the section selector block, and the directory archive pages.

Practical Example: A Medical Directory with Doctors and Clinics

Let us walk through an example that clearly shows how GeoDirectory Custom Post Types works. The goal is to build a medical directory where clinics and doctors are separate post types with different fields, but still connected to each other. The same pattern can be adapted to other pairs such as venues and events, companies and jobs, or schools and courses.

Goal

You need to create two CPTs: "Clinics" and "Doctors." The clinic stores address, departments, office hours, and contact details. The doctor stores specialty, appointment format, experience, languages, and a relationship to the clinic. The clinic page should display related doctors, and the doctor page should show the clinic where the doctor practices.

Preparation

  • The core GeoDirectory plugin is installed and loads the base pages without errors.
  • GeoDirectory Custom Post Types is active, and the Post Types section is available.
  • For testing, you have two future clinic categories and several doctor specialties prepared.
  • There are draft detail and archive templates that can be duplicated.
  • It is clear who will add the listings: an editor in the admin or users through the front-end form.

Configuration steps

  1. Create the CPT for clinics. Use a system name such as gd_clinic, a public slug like clinics, clear labels, and keep physical location enabled if clinics have addresses.
  2. Create the CPT for doctors. Use a system name such as gd_doctor, the slug doctors, separate labels, and decide whether the doctor needs an address of their own or only a relationship to the clinic.
  3. In Doctors > Settings > Custom Fields, add fields for specialty, consultation format, and a Link Posts field that connects the doctor to a clinic.
  4. Configure the relationship field: the label "Clinic," helper text for the editor, whether it is required if a doctor must not be published without a clinic, and whether entries from other owners can be selected if the site allows user submissions.
  5. Create or duplicate the clinic detail template. In the tab settings, add a GD > Listings block that outputs doctors related to the current clinic.
  6. Create or duplicate the doctor detail template. Add a compact output of the related clinic through a related listings block or a configured GD > Listings.
  7. Add the clinics and doctors archives to the WordPress menu or to the GD > CPT Listings block.
  8. Create a test clinic and a test doctor, connect them, publish them, and check both public pages.

Expected result

On the clinic page, the user sees more than an address and description. They also see the list of doctors connected to that clinic. On the doctor page, the related clinic appears. The /clinics/ and /doctors/ archives open separately, the submission forms do not mix fields, and the menu sends visitors to the correct section.

A detail that often breaks this example

If the related doctors tab is empty, do not assume the relationship itself is broken. The more common cause is the relationship direction or the post_type parameter in the output block. Check exactly where the Link Posts field was added, which type is selected in the form, and what the block is supposed to show: entries linked "from the current one" or "to the current one."

Verifying the Result: Front End, Search, SEO, and Cache

After configuring your CPTs, do not stop at the admin area. You need to test the real user journey as well. Site owners often see that an entry was saved and assume the work is finished. Visitors face a different set of questions: where is the new section in the menu, does the archive open, are filters available, do the fields make sense, are related entries displayed, and does search still behave correctly?

Front-end review

  1. Open the archive for each CPT in a private browser window.
  2. Check the archive card: image, title, key fields, buttons, distance, or address where applicable.
  3. Open the detail page and confirm that all important fields appear in the correct blocks.
  4. Test the submission form using the same user role that will actually add entries.
  5. Check related entries: the clinic shows doctors, the doctor shows the clinic, the event shows the venue.
  6. Follow links from both the menu and the GD > CPT Listings block.

Search and filters

Run several real searches for each CPT. Do not stop at an empty search. Test category, keyword, location, custom field, and at least one relationship-driven scenario. If Advanced Search Filters is installed, make sure the filters match the post type. A "Number of Rooms" filter should not appear for doctors, and a "Specialty" filter does not belong on the clinic archive if it applies only to doctors.

If a field was added to the main search bar, it should not also appear in the advanced form if the documentation for your chosen setup says that would be redundant. The user should see one clear path, not two similar filters that behave differently.

SEO review without assumptions

A new CPT creates a separate archive and separate listing pages, but that alone does not guarantee more traffic. Check the basics: a unique archive title, useful meta text, a clean slug, no duplicate pages, listing pages that open without 404 errors, internal navigation, and meaningful copy on the archive page. If you use Yoast or Rank Math, make sure the metadata does not conflict with GeoDirectory settings.

For large directories, it helps to define naming patterns for listings. For example, a doctor might be titled "Name + specialty + city," while a clinic could follow "Name + neighborhood." But do not turn titles into a pile of keywords. The goal is for users to understand the listing at a glance and distinguish it from similar ones.

Cache and performance

The developer states that GeoDirectory is compatible with popular caching solutions, but a new CPT should still be checked after cache clearing. Pay special attention to submission pages, dynamic blocks, search, maps, and related entries. If you see an outdated template, an empty tab, or a missing filter, clear the cache first and then repeat the check in a private window.

Practical validation: if an editor can create a listing, a visitor can find it through the menu and search, and the related object appears on the detail page, the basic CPT workflow is working.

Safe Improvements: URLs, Submission Form, and Load

After the basic setup, you may want a few small refinements. It is best to make them through settings, a child theme, Code Snippets, or developer-documented snippets. Do not edit plugin files directly: a GeoDirectory update will overwrite your changes, and one PHP mistake can take the site down.

Adding a parent slug to CPT URLs

If you need to group archives under a shared path, for example changing /places/ to /resources/places/, the GeoDirectory documentation includes a snippet using the geodir_get_option_post_types filter. Use it only after testing on a site copy and only if you understand the permalink and redirect implications.

function gd_snippet_option_post_types( $value, $key, $default ) {
    $post_type = 'gd_place'; // Replace with the system name of your CPT.
    $top_level_item = 'resources'; // Parent URL segment.

    if ( ! empty( $value[ $post_type ] ) ) {
        $value[ $post_type ]['has_archive'] = $top_level_item . '/' . $value[ $post_type ]['rewrite']['slug'];
        $value[ $post_type ]['rewrite']['slug'] = $top_level_item . '/' . $value[ $post_type ]['rewrite']['slug'];
    }

    return $value;
}
add_filter( 'geodir_get_option_post_types', 'gd_snippet_option_post_types', 21, 3 );

After adding the code, resave WordPress permalinks, clear the cache, and test both the old and new URLs. If the site was already indexed, prepare redirects. Rolling back is simple: disable the snippet, resave permalinks again, and clear the cache. Do not apply this code to every CPT at once unless you already have a complete URL map.

A lightweight CSS tweak for the submission form

If users keep missing the helper text under your fields, you can gently improve the contrast of the form descriptions. The GeoDirectory documentation includes a CSS example for form#geodirectory-add-post small.text-muted. You can add it to a child theme or another safe location for custom CSS.

/* Improves the readability of helper text in the GeoDirectory submission form. */
form#geodirectory-add-post small.text-muted {
    color: #333 !important;
}

Check the submission form for each CPT: the helper text should become more noticeable without clashing with the theme design. If the style feels too harsh, switch to a softer color or remove the rule. This tweak does not change your data and does not affect the CPT structure.

When not to disable GeoDirectory scripts

The documentation includes a snippet to prevent GeoDirectory JavaScript from loading on non-GD pages, but the developer explicitly warns that in most cases it is no longer needed, and using it on pages with widgets or shortcodes can cause compatibility issues. On a directory with multiple CPTs, do not start your optimization work by disabling scripts. Measure performance first, check caching, and make sure the real issue actually exists on pages without GeoDirectory blocks.

Troubleshooting Common Issues When Working with Multiple CPTs

Problems with GeoDirectory Custom Post Types usually do not come from the CPT creation button itself. They come from how the settings interact: slug, templates, permalinks, fields, cache, submission permissions, and linked post direction. Below is a practical symptom map worth checking before you contact support.

GeoDirectory Custom Post Types troubleshooting map
This troubleshooting map connects a symptom, likely cause, verification step, and safe fix without making random changes across the settings.

The new CPT archive returns a 404

Symptom: the post type was created, the listing is published, but the archive or detail page opens as Page Not Found.

Cause: most often WordPress has not refreshed its permalink rules yet, the slug conflicts with an existing page, or GeoDirectory link settings need to be resaved.

What to check: open Settings > Permalinks and save the settings without changes. Then check the CPT slug, any pages using the same path, and GeoDirectory permalink settings.

How to fix it: resave WordPress permalinks, then if needed temporarily switch GeoDirectory link settings to another option and switch them back. If the slug conflicts with something else, choose a new slug and prepare a redirect for the old path.

The related listings tab is empty

Symptom: the related object is selected in the form, but the related listings block shows nothing on the detail page.

Cause: the Linked From/Linked To direction is reversed, the shortcode uses the wrong post_type, the related entry is unpublished, or the block was added to the wrong CPT template.

What to check: create two published test entries and connect them. Open the tab settings, find the GD > Listings block, and verify the post type, relationship direction, and current entry context.

How to fix it: change the relationship direction in the block, verify the shortcode, and save the template. If you need the relationship in both directions, configure separate output on each detail page instead of one universal block for all CPTs.

Fields from one type appear in another

Symptom: the submission form for a new CPT shows fields that belong to another entity, or editors end up filling in irrelevant data.

Cause: the form was copied without cleanup, fields were added to a shared output template, or the editor is using the wrong menu section.

What to check: open the Custom Fields settings for the correct CPT and compare them against your data map. Then check the detail template: it may be outputting a generic block without conditions.

How to fix it: remove or disable the extra fields in the specific CPT, update the template, and review the existing entries. If incorrect data has already been entered, export it before cleaning anything up.

Address data disappeared after enabling "Disable Physical Location"

Symptom: address fields vanish from the CPT, or older entries lose their location data.

Cause: physical location was disabled for a type that already stored addresses. The documentation warns that this step deletes address data for that CPT.

What to check: verify whether Location Manager is enabled, which mode is selected in the general CPT settings, and whether you have a backup from before the change.

How to fix it: if the data has already been removed, restore it from a backup or import. For mixed entries, use an optional address field instead of fully disabling physical location.

The new CPT is not visible in the menu and users cannot find it

Symptom: the administrator can see the CPT, but visitors do not enter the section, and the public submission form is hard to find.

Cause: the archive and add listing endpoint were not added to Appearance > Menus, the GD > CPT Listings block excludes this type, or the display conditions hide the widget.

What to check: the WordPress menu, the GD > CPT Listings block settings, excluded types, and display conditions. Open the site as a regular user, not as an administrator.

How to fix it: add the archive and submission page to the menu, update the CPT selector block, and verify the links in the footer or sidebar. If the section is still only for testing, hide it intentionally rather than by accident.

Search shows irrelevant fields or filters

Symptom: the archive for one CPT shows filters from another post type, and the results feel unpredictable.

Cause: Advanced Search filters are configured too broadly, a field was added to the main search instead of the advanced form, or a shared search template is being used without CPT-specific logic.

What to check: the CPT > Settings > Search settings, the list of fields added to the main search, and the display conditions of the search block.

How to fix it: keep only universal parameters in the main search bar and move specialized fields into the advanced form of the relevant CPT. After the change, test search by keyword, category, and every important field.

Questions to Answer Before Launching GeoDirectory Custom Post Types

Can I create as many post types as I want?

The official product page and setup guide say the extension allows you to create as many CPTs as you need. But in practice, the real limit is not the create button. It is your team's ability to maintain the fields, templates, search, menus, and relationships. For an initial rollout, it is smarter to create two or three post types you genuinely need, verify the content workflow, and only then expand the structure.

How is a separate CPT different from a category?

A category works when listings share the same form, template, and search logic. A separate CPT is needed when the entity has its own fields, categories, tags, template, submission form, or relationships to other types. If the difference is only thematic, start with categories.

Can I make a post type without an address?

Yes. GeoDirectory documents a location-less CPT option, but fully disabling physical location requires Location Manager, and the documentation warns that address data for that CPT will be removed. For mixed listings, it is safer to make the address field optional rather than disabling location entirely.

Why do I get a 404 after creating a CPT?

Most often, you need to resave WordPress permalinks or GeoDirectory link settings. Also check for a slug conflict with an existing page or archive. Do not change several settings at once: first resave permalinks, then check the slug, then clear the cache.

How do I display related entries on the detail page?

First add a Link Posts field to the form of the required CPT. Then in the tab settings of the other CPT, add a GD > Listings block or shortcode with the correct relationship direction: linked_posts="from" or linked_posts="to". If the direction is wrong, the block will be empty.

Do I need separate templates for every CPT?

Not always, but for a complex directory they are almost always helpful. The documentation lists three template pages for each type: detail, archive, and archive item. If different CPTs have different fields and different user expectations, separate templates make the pages much easier to understand.

Is it safe to change the slug after launch?

Technically yes, but on a live site it is risky: old URLs may start returning 404 errors, internal links may break, and indexed pages will need redirects. It is better to choose the slug carefully up front. If the change is unavoidable, do it on a site copy, prepare redirects, and check the archives after resaving permalinks.

Is this extension suitable for an online store?

GeoDirectory Custom Post Types is not a WooCommerce layer for products, carts, or checkout. It is designed for listing directories. If your goal is WooCommerce products, orders, and payments, you need a different class of solution. If your goal is a directory of vendors, places, services, or properties with maps and search, this extension may be a good fit.

When GeoDirectory Custom Post Types Is the Right Choice

GeoDirectory Custom Post Types is worth using when your directory is no longer one-format and you need to separate entities not just visually but logically. The strongest scenarios are different submission forms, separate categories and tags, custom page templates, relationships between objects, and more precise filters. In those conditions, the extension helps you build a directory that feels clear and structured, with each entity living in its own context.

If your site still contains only one kind of listing, do not rush to split it into multiple CPTs. Start with categories, custom fields, and a solid template. Add a new post type only when there is a real difference in the data, search flow, permissions, template, or relationships. That approach keeps the directory manageable.

Before launching on a live site, review the data model, backup, slug, templates, menu, submission form, relationships, and search behavior. After that, you can download the installation package, install the extension on a test copy of the site, and walk through the full practical workflow before publishing real listings.

No YouTube video specifically focused on GeoDirectory Custom Post Types was found during verification, so this guide does not include a random video about general GeoDirectory setup. For this product, it is better to rely on the official documentation for CPTs, linked posts, templates, and settings, and use video only when it clearly shows the exact screen you need rather than pushing the user toward general directory marketing.

By OceanTheme.org Editorial Team

 

You are not logged in to post comments.