{"id":2308,"date":"2026-10-20T08:30:41","date_gmt":"2026-10-20T07:30:41","guid":{"rendered":"https:\/\/wpgeodirectory.com\/documentation\/article\/geodirectory-general-faq\/"},"modified":"2026-10-20T09:02:15","modified_gmt":"2026-10-20T08:02:15","slug":"geodirectory-general-faq","status":"publish","type":"gd_place","link":"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/geodirectory-general-faq\/","title":{"rendered":"GeoDirectory general FAQ"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Answers to common GeoDirectory questions about general. Click a question to open the answer.<\/p>\n\n\n\n<div class=\"wp-block-blockstrap-blockstrap-widget-accordion accordion mb-3\">\n<div class=\"accordion-item\" id=\"heading-acf-options-gd-pages\"><h2 class=\"accordion-header\"><button class=\"accordion-button\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-acf-options-gd-pages\" aria-expanded=\"true\" aria-controls=\"collapse-acf-options-gd-pages\">Why do my ACF options fields not show on GeoDirectory pages?<\/button><\/h2><div class=\"accordion-collapse collapse show\" id=\"collapse-acf-options-gd-pages\" aria-labelledby=\"heading-acf-options-gd-pages\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">GeoDirectory stores listing data in its own database tables, so for listing fields use GeoDirectory custom fields rather than ACF. Values from an ACF options page are separate from listings and should work on GeoDirectory pages too.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If they work everywhere except GeoDirectory pages, a query filter is the likely cause. On GeoDirectory archive, search and listing pages, GeoDirectory removes other callbacks on the main query&#8217;s SQL filters, such as <code>posts_where<\/code> and <code>posts_join<\/code>, before adding its own. Code that relies on those filters for the main query will not run there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Test with a default theme and only ACF and GeoDirectory active, then contact our support with the result.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-undefined-property-plugin-notice\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-undefined-property-plugin-notice\" aria-expanded=\"false\" aria-controls=\"collapse-undefined-property-plugin-notice\">Why do I see &quot;Notice: Undefined property: stdClass::$plugin&quot; in class-wp-list-util.php?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-undefined-property-plugin-notice\" aria-labelledby=\"heading-undefined-property-plugin-notice\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">This is a PHP notice, not an error, and it does not stop your site working. WordPress only prints notices on screen when debugging is switched on, so the quickest fix is to stop them being displayed by adding this to <code>wp-config.php<\/code>: <code>define( &#039;WP_DEBUG_DISPLAY&#039;, false );<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The notice comes from a plugin passing incomplete data to a WordPress function, so the file named in it is WordPress core rather than the plugin at fault. To find which plugin it is, deactivate your plugins one at a time (leaving GeoDirectory active) and reload the admin page after each one. When the notice disappears, update or report the last plugin you deactivated.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-claim-shortcode-not-working\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-claim-shortcode-not-working\" aria-expanded=\"false\" aria-controls=\"collapse-claim-shortcode-not-working\">Why is my claim listing shortcode showing as text?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-claim-shortcode-not-working\" aria-labelledby=\"heading-claim-shortcode-not-working\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Check the quotes in the shortcode. Copying from a word processor or some websites turns straight quotes into curly ones (\u201c \u201d), and WordPress cannot read attributes written with curly quotes, so the shortcode prints as text or ignores its settings.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Type the quotes again by hand as straight quotes. The current Claim Listings shortcode is <code>&#091;&lt;span&gt;&lt;\/span&gt;gd_claim_post&#093;<\/code>, for example <code>&#091;&lt;span&gt;&lt;\/span&gt;gd_claim_post text=&quot;Claim this business&quot; output=&quot;link&quot;&#093;<\/code>. You can also add the GD > Post Claim block to your details page. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/claim-listings\/gd-post-claim\/\">GD > Post Claim<\/a> for all its options.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-hosting-for-geodirectory\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-hosting-for-geodirectory\" aria-expanded=\"false\" aria-controls=\"collapse-hosting-for-geodirectory\">What hosting should I use for GeoDirectory?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-hosting-for-geodirectory\" aria-labelledby=\"heading-hosting-for-geodirectory\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">GeoDirectory runs on any host that meets the <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/installation\/server-requirements\/\">server requirements<\/a>. We do not require a particular company.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The bigger choice is managed or unmanaged. A plain cloud server, such as a DigitalOcean droplet, is cheaper, but you install and look after the web server, PHP, database, SSL, backups and security updates yourself. A managed service, such as Cloudways, runs on the same kind of servers and does that work for you, which is why it costs more. Pick unmanaged only if you are comfortable running a server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A directory with many listings, maps and searches needs more memory and CPU than a small blog, so leave room to grow.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-dropdowns-plugin-conflict\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-dropdowns-plugin-conflict\" aria-expanded=\"false\" aria-controls=\"collapse-dropdowns-plugin-conflict\">Dropdowns stop working in GeoDirectory when another plugin (like Dokan) is active<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-dropdowns-plugin-conflict\" aria-labelledby=\"heading-dropdowns-plugin-conflict\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">When GeoDirectory dropdowns stop opening or lose their search box only while another plugin is active, the two plugins are usually loading clashing copies of the same JavaScript library, or one plugin&#8217;s script error stops the rest of the page scripts from running.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open your browser console (F12) on the broken page and look for red JavaScript errors. The file name in the error usually tells you which plugin it comes from.<\/li>\n\n\n\n<li>Deactivate the other plugin and confirm the dropdowns work again. Then reactivate it to be sure it is the cause.<\/li>\n\n\n\n<li>Update both plugins, as many of these clashes are fixed in later versions.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If it still happens, open a support ticket with the plugin name and the console error, and we can look at a fix for it.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-blog-page\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-blog-page\" aria-expanded=\"false\" aria-controls=\"collapse-blog-page\">How do I add a blog page to my GeoDirectory site?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-blog-page\" aria-labelledby=\"heading-blog-page\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">GeoDirectory does not change how the WordPress blog works, so you set it up the normal way:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create an empty page, for example &#8220;Blog&#8221;, in Pages > Add New.<\/li>\n\n\n\n<li>Go to Settings > Reading and set &#8220;Your homepage displays&#8221; to &#8220;A static page&#8221;.<\/li>\n\n\n\n<li>Pick your new page as the Posts page and save.<\/li>\n\n\n\n<li>Publish at least one post. Until you do, the blog page has nothing to show.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Use a normal page here. The GeoDirectory template pages (search, details, archive, add listing and so on) are disabled in the Posts page and Homepage dropdowns on purpose.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-dashboard-addon\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-dashboard-addon\" aria-expanded=\"false\" aria-controls=\"collapse-dashboard-addon\">Where is the GeoDirectory Dashboard add-on and its documentation?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-dashboard-addon\" aria-labelledby=\"heading-dashboard-addon\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">The Dashboard add-on was for GeoDirectory v1 and isn&#8217;t available any more. GeoDirectory v2 has a dashboard built in, so you don&#8217;t need an add-on.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For site owners: GeoDirectory &gt; Dashboard in wp-admin.<\/li>\n\n\n\n<li>For your users: add the <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/core-widgets\/gd-dashboard\/\">GD &gt; Dashboard<\/a> block or <code>&#091;&lt;span&gt;&lt;\/span&gt;gd_dashboard&#093;<\/code> shortcode to a page. Logged-in users see links to their listings and other GeoDirectory account options there.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To let users edit or delete their own listings from the front end, see <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/core-features\/how-can-my-users-edit-or-delete-their-listings\/\">how can my users edit or delete their listings?<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-job-board-buddypress\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-job-board-buddypress\" aria-expanded=\"false\" aria-controls=\"collapse-job-board-buddypress\">Can I run a job board with GeoDirectory and BuddyPress?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-job-board-buddypress\" aria-labelledby=\"heading-job-board-buddypress\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Yes. GeoDirectory has no separate job board add-on, but you can set up a job listings post type with its own fields and use it alongside BuddyPress.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create a post type for jobs with the <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/custom-post-types-extension\/how-to-add-a-new-custom-post-type\/\">Custom Post Types add-on<\/a>.<\/li>\n\n\n\n<li>In GeoDirectory > Settings > General > Dummy Data you can install the Job Board demo data on that post type. It adds job categories and fields such as company name, logo, salary, deadline date, job type and job sector, which you can then edit or remove.<\/li>\n\n\n\n<li>Add any other fields you need, for example an application link, as <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/how-to-add-a-custom-field-to-custom-post-type\/\">custom fields<\/a>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/buddypress-integration\/buddypress-integration-setup-guide\/\">BuddyPress Integration<\/a> add-on connects GeoDirectory with BuddyPress member profiles, so members see the listings they posted.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GeoDirectory does not manage CVs or track applications. If you need those, use a dedicated job board plugin next to GeoDirectory, or add a contact form to the job listings, for example with the <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/integrations\/ninja-forms\/\">Ninja Forms integration<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-gd-notifications-shortcode\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-gd-notifications-shortcode\" aria-expanded=\"false\" aria-controls=\"collapse-gd-notifications-shortcode\">What is the &#091;gd_notifications&#093; shortcode for?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-gd-notifications-shortcode\" aria-labelledby=\"heading-gd-notifications-shortcode\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\"><code>&#091;&lt;span&gt;&lt;\/span&gt;gd_notifications&#093;<\/code> is the shortcode for the GD &gt; Notifications block. It marks the spot where GeoDirectory and its add-ons print messages on a page, which is why you find it on the GeoDirectory template pages. It shows two kinds of message:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Admin hints: the blue info boxes that explain a page and link to the docs. Only administrators see them.<\/li>\n\n\n\n<li>Notices for visitors, for example the warning on a listing that has been marked as closed down or temporarily closed.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">To turn the hints off, go to GeoDirectory &gt; Settings &gt; General &gt; Developer and untick Enable admin hints, or click the Disable hints link inside any hint.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is no setting for writing your own messages to visitors in this block. A developer can add one with the <code>geodir_notifications<\/code> filter. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/core-widgets\/gd-notifications\/\">GD &gt; Notifications<\/a> for the block options.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-enable-exif-extension\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-enable-exif-extension\" aria-expanded=\"false\" aria-controls=\"collapse-enable-exif-extension\">How do I enable the PHP exif extension?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-enable-exif-extension\" aria-labelledby=\"heading-enable-exif-extension\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Exif is a PHP extension on your server. WordPress and GeoDirectory use it to read the orientation saved in phone photos and rotate them the right way up when they are uploaded. Without it, some mobile photos can appear sideways.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">How to enable it depends on your hosting:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Managed hosting: ask your host to enable the exif PHP extension.<\/li>\n\n\n\n<li>cPanel and similar panels: look for a PHP extensions or Select PHP Version screen and tick exif.<\/li>\n\n\n\n<li>Local or your own server: enable <code>extension=exif<\/code> in php.ini and restart the web server.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tools > Site Health in WordPress will flag the extension if it is missing.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-rank-math-listing-images\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-rank-math-listing-images\" aria-expanded=\"false\" aria-controls=\"collapse-rank-math-listing-images\">Does GeoDirectory work with Rank Math for listing images and SEO analysis?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-rank-math-listing-images\" aria-labelledby=\"heading-rank-math-listing-images\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Yes. When Rank Math is active, GeoDirectory adds the listing images to the Rank Math sitemap for each listing, using the image title. On the backend listing editor it also passes the uploaded images, text areas and text fields (with website fields as links) to the Rank Math content analysis, so they count towards the score. Each image is given its title as the alt text for that check.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To set the title, caption and alt text of listing images, see <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/how-to-set-the-alt-title-or-caption-for-images\/\">How to set the ALT, title or caption for images?<\/a>. For titles and descriptions, GeoDirectory variables work in Rank Math: <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/how-to-use-geodirectory-snippet-variables-in-rank-math\/\">How to use GeoDirectory snippet variables in Rank Math<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-autoptimize-maps\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-autoptimize-maps\" aria-expanded=\"false\" aria-controls=\"collapse-autoptimize-maps\">Why do maps stop loading when I use Autoptimize?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-autoptimize-maps\" aria-labelledby=\"heading-autoptimize-maps\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Autoptimize combines and moves JavaScript, and GeoDirectory&#8217;s map scripts need to load in their normal order with the inline map settings next to them. When they are combined, the map and the Near Me button can stop working.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In Settings &gt; Autoptimize, add <code>wp-content\/plugins\/geodirectory\/<\/code> and <code>maps.googleapis.com<\/code> to the list of scripts to exclude.<\/li>\n\n\n\n<li>Untick Aggregate inline JS and Add try-catch wrapping.<\/li>\n\n\n\n<li>Save, clear the Autoptimize cache and your page cache, and check a map page in a private window.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">If your maps still don&#8217;t load, open the browser console. A Google key error there is a separate problem with your API key. <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/caching\/geodirectory-and-caching-compatibility\/\">GeoDirectory and caching compatibility<\/a> covers other caching and optimization plugins.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-custom-home-page\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-custom-home-page\" aria-expanded=\"false\" aria-controls=\"collapse-custom-home-page\">How do I use my own home page with GeoDirectory?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-custom-home-page\" aria-labelledby=\"heading-custom-home-page\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Set it in WordPress, not in GeoDirectory. Go to Settings > Reading, choose A static page for &#8220;Your homepage displays&#8221;, and select your page.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">GeoDirectory no longer has a separate GD Home page setting. Its page settings in GeoDirectory > Settings > General > Pages are for the Location page, Add listing page, Search page and the template pages, and none of these should be used as your home page. Build your home page with the GeoDirectory blocks you want, such as GD > Search, GD > Map and GD > Listings.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-banner-ads-plugin\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-banner-ads-plugin\" aria-expanded=\"false\" aria-controls=\"collapse-banner-ads-plugin\">Which plugin can I use to show banner ads on a GeoDirectory site?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-banner-ads-plugin\" aria-labelledby=\"heading-banner-ads-plugin\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Our GetPaid Advertising add-on lets you sell banner ad space and show the ads on your site, and it works with GeoDirectory. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/geodirectory-integration-with-getpaid-advertising\/\">GeoDirectory Integration with GetPaid Advertising<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you only want to show Google AdSense or ads you manage yourself, any ad plugin that gives you a block, widget or shortcode will work. GeoDirectory pages such as the archive and details templates are normal WordPress pages, so you can add an ad block to them, or to a widget area in your theme.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-sitemap-xml-parsing-error\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-sitemap-xml-parsing-error\" aria-expanded=\"false\" aria-controls=\"collapse-sitemap-xml-parsing-error\">How do I fix &quot;XML Parsing Error: xml processing instruction not at start of external entity&quot; on my sitemap?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-sitemap-xml-parsing-error\" aria-labelledby=\"heading-sitemap-xml-parsing-error\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">This error means something printed text, usually a blank line or space, before the start of the sitemap XML. The cause is almost always a theme or plugin PHP file with whitespace before its opening <code>&lt;?php<\/code> tag or after a closing <code>?&gt;<\/code> tag. Custom code added to <code>functions.php<\/code> is a common culprit.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the sitemap URL and view the page source. If the first line is blank, extra output is the cause.<\/li>\n\n\n\n<li>Switch to a default theme and check again.<\/li>\n\n\n\n<li>Deactivate plugins one at a time until the sitemap loads, then fix or replace the file that adds the whitespace.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">GeoDirectory isn&#8217;t the cause if the error is still there with all GeoDirectory plugins deactivated. In that case check your other plugins, the theme, and any code snippets.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-critical-error-after-update\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-critical-error-after-update\" aria-expanded=\"false\" aria-controls=\"collapse-critical-error-after-update\">What do I do about &quot;There has been a critical error on your website&quot; after updating GeoDirectory?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-critical-error-after-update\" aria-labelledby=\"heading-critical-error-after-update\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">WordPress shows this message when a plugin causes a PHP fatal error. It also emails the site admin a link to recovery mode, where you can log in with the faulty plugin paused.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open the recovery link from the email, or rename the plugin folder in <code>wp-content\/plugins<\/code> by FTP, to get back into the admin.<\/li>\n\n\n\n<li>Update GeoDirectory and all its add-ons together. An add-on that is newer or older than the core plugin is the most common cause.<\/li>\n\n\n\n<li>If the error is still there, turn on <code>WP_DEBUG_LOG<\/code> in <code>wp-config.php<\/code> and look in <code>wp-content\/debug.log<\/code> for the error. It names the file and line.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Send the error from the log to our support team so we can fix it.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-translate-url-slugs\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-translate-url-slugs\" aria-expanded=\"false\" aria-controls=\"collapse-translate-url-slugs\">How do I translate the author, page and tags parts of my GeoDirectory URLs?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-translate-url-slugs\" aria-labelledby=\"heading-translate-url-slugs\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">These three words come from different places.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The tags part is a GeoDirectory setting. Go to Settings > Permalinks, scroll to GeoDirectory permalinks and change Tag base (default <code>tags<\/code>). The Category base (default <code>category<\/code>) is next to it. Save the page to update the rewrite rules.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The author and page parts are set by WordPress itself, not by GeoDirectory. You can change them with a small snippet, for example in the <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/useful-plugins\/code-snippets-plugin\/\">Code Snippets plugin<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-php\">add_action( &#039;init&#039;, function() {\n\tglobal $wp_rewrite;\n\t$wp_rewrite-&gt;author_base     = &#039;autor&#039;; \/\/ instead of author\n\t$wp_rewrite-&gt;pagination_base = &#039;seite&#039;; \/\/ instead of page\n} );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Replace the two words with your own, then go to Settings > Permalinks and click Save Changes. If you use UsersWP, its profile page has its own slug, so you can use that instead of the author pages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Old URLs stop working after a change like this, so set up redirects if the site is already indexed.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-translation-overwritten\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-translation-overwritten\" aria-expanded=\"false\" aria-controls=\"collapse-translation-overwritten\">Why is my GeoDirectory translation overwritten after updates?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-translation-overwritten\" aria-labelledby=\"heading-translation-overwritten\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\"><code>wp-content\/languages\/plugins<\/code> is where WordPress saves the translations it downloads from translate.wordpress.org. Whenever it fetches language updates, which can happen after installing or updating any plugin, it replaces the GeoDirectory files in that folder, and your own translation is lost.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Save your files in a folder WordPress does not update instead:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Create the folder <code>wp-content\/languages\/geodirectory<\/code>.<\/li>\n\n\n\n<li>Upload your files there named for your language, for example <code>geodirectory-de_DE.mo<\/code> and <code>geodirectory-de_DE.po<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">GeoDirectory loads that file before the downloaded one, so your strings win and any missing ones still come from the official translation. For a few strings only, see <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/translations\/how-to-change-just-one-language-string\/\">How to change just one language string<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-undefined-function-get-userdata\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-undefined-function-get-userdata\" aria-expanded=\"false\" aria-controls=\"collapse-undefined-function-get-userdata\">How do I fix &quot;Call to undefined function get_userdata()&quot; when I activate GeoDirectory?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-undefined-function-get-userdata\" aria-labelledby=\"heading-undefined-function-get-userdata\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">This error means a database query ran before WordPress had loaded its user functions. GeoDirectory hooks into WordPress queries, so when another plugin or theme runs a query too early in loading, activating GeoDirectory can be what brings the error to the surface. The fix belongs in the code that runs the early query.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Deactivate other plugins one at a time to find the one that clashes. In the original report it was a sports plugin.<\/li>\n\n\n\n<li>Update that plugin and your theme to their latest versions.<\/li>\n\n\n\n<li>If the error stays, send the full error message, including the file list from the stack trace, to that plugin&#8217;s developer and to us.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">The stack trace in your PHP error log shows which plugin started the query, which is usually enough for its developer to fix it.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-addon-without-core-error\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-addon-without-core-error\" aria-expanded=\"false\" aria-controls=\"collapse-addon-without-core-error\">What does &quot;Class GeoDir_Defaults not found&quot; or &quot;Call to undefined function geodir_get_option()&quot; mean?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-addon-without-core-error\" aria-labelledby=\"heading-addon-without-core-error\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">Both errors mean a GeoDirectory add-on loaded while the GeoDirectory core plugin was missing, inactive or too old. The add-ons rely on functions and classes from core, so they cannot run without it, and WordPress pauses them in recovery mode.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to Plugins and check that GeoDirectory is installed and active.<\/li>\n\n\n\n<li>Update GeoDirectory core to the latest version, then update the add-ons.<\/li>\n\n\n\n<li>Activate or resume the add-ons once core is running.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">When you update, do core first and the add-ons after. If you need to reinstall core, deactivating and deleting the plugin does not remove your listings unless Remove Data on Uninstall? is ticked in GeoDirectory > Settings > General > Uninstall. Take a backup before you start anyway.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sites still on GeoDirectory v1 need to move to the current version, because v1 is no longer maintained and current add-ons need the current core. See <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/how-tos\/upgrading-from-gdv1-to-gdv2\/\">Upgrading from GDv1 to GDv2<\/a>.<\/p>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"accordion-item\" id=\"heading-wpml-translation-permalink\"><h2 class=\"accordion-header\"><button class=\"accordion-button collapsed\" type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-wpml-translation-permalink\" aria-expanded=\"false\" aria-controls=\"collapse-wpml-translation-permalink\">Why does a WPML translated listing link to the home page instead of the listing?<\/button><\/h2><div class=\"accordion-collapse collapse\" id=\"collapse-wpml-translation-permalink\" aria-labelledby=\"heading-wpml-translation-permalink\" data-bs-parent=\"\"><div class=\"wp-block-blockstrap-blockstrap-widget-accordion-item accordion-body pb-0\">\n<p class=\"wp-block-paragraph\">This happens when WPML adds the language as a URL parameter, for example <code>?lang=en<\/code>. GeoDirectory listing URLs need the language in the path, so go to WPML > Languages > Language URL format and choose Different languages in directories. Then save your permalinks once in Settings > Permalinks.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After that, translated listings get links such as <code>\/en\/places\/...<\/code> and open the translated listing. The <a href=\"https:\/\/wpgeodirectory.com\/documentation\/article\/wp-multilingual\/wpml-multilingual-setup-guide\/\">WPML Multilingual Setup Guide<\/a> covers the rest of the setup.<\/p>\n<\/div><\/div><\/div>\n<\/div>\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"FAQPage\",\n    \"mainEntity\": [\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why do my ACF options fields not show on GeoDirectory pages?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"GeoDirectory stores listing data in its own database tables, so for listing fields use GeoDirectory custom fields rather than ACF. Values from an ACF options page are separate from listings and should work on GeoDirectory pages too.\\n\\n\\n\\nIf they work everywhere except GeoDirectory pages, a query filter is the likely cause. On GeoDirectory archive, search and listing pages, GeoDirectory removes other callbacks on the main query\\u0027s SQL filters, such as posts_where and posts_join, before adding its own. Code that relies on those filters for the main query will not run there.\\n\\n\\n\\nTest with a default theme and only ACF and GeoDirectory active, then contact our support with the result.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why do I see \\u0022Notice: Undefined property: stdClass::$plugin\\u0022 in class-wp-list-util.php?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"This is a PHP notice, not an error, and it does not stop your site working. WordPress only prints notices on screen when debugging is switched on, so the quickest fix is to stop them being displayed by adding this to wp-config.php: define( \\u0027WP_DEBUG_DISPLAY\\u0027, false );\\n\\n\\n\\nThe notice comes from a plugin passing incomplete data to a WordPress function, so the file named in it is WordPress core rather than the plugin at fault. To find which plugin it is, deactivate your plugins one at a time (leaving GeoDirectory active) and reload the admin page after each one. When the notice disappears, update or report the last plugin you deactivated.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why is my claim listing shortcode showing as text?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Check the quotes in the shortcode. Copying from a word processor or some websites turns straight quotes into curly ones (\u00e2\u0080\u009c \u00e2\u0080\u009d), and WordPress cannot read attributes written with curly quotes, so the shortcode prints as text or ignores its settings.\\n\\n\\n\\nType the quotes again by hand as straight quotes. The current Claim Listings shortcode is [\\u003Cspan\\u003E\\u003C\/span\\u003Egd_claim_post], for example [\\u003Cspan\\u003E\\u003C\/span\\u003Egd_claim_post text=\\u0022Claim this business\\u0022 output=\\u0022link\\u0022]. You can also add the GD \\u003E Post Claim block to your details page. See GD \\u003E Post Claim for all its options.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What hosting should I use for GeoDirectory?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"GeoDirectory runs on any host that meets the server requirements. We do not require a particular company.\\n\\n\\n\\nThe bigger choice is managed or unmanaged. A plain cloud server, such as a DigitalOcean droplet, is cheaper, but you install and look after the web server, PHP, database, SSL, backups and security updates yourself. A managed service, such as Cloudways, runs on the same kind of servers and does that work for you, which is why it costs more. Pick unmanaged only if you are comfortable running a server.\\n\\n\\n\\nA directory with many listings, maps and searches needs more memory and CPU than a small blog, so leave room to grow.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Dropdowns stop working in GeoDirectory when another plugin (like Dokan) is active\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"When GeoDirectory dropdowns stop opening or lose their search box only while another plugin is active, the two plugins are usually loading clashing copies of the same JavaScript library, or one plugin\\u0027s script error stops the rest of the page scripts from running.\\n\\n\\n\\n\\nOpen your browser console (F12) on the broken page and look for red JavaScript errors. The file name in the error usually tells you which plugin it comes from.\\n\\n\\n\\nDeactivate the other plugin and confirm the dropdowns work again. Then reactivate it to be sure it is the cause.\\n\\n\\n\\nUpdate both plugins, as many of these clashes are fixed in later versions.\\n\\n\\n\\n\\nIf it still happens, open a support ticket with the plugin name and the console error, and we can look at a fix for it.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I add a blog page to my GeoDirectory site?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"GeoDirectory does not change how the WordPress blog works, so you set it up the normal way:\\n\\n\\n\\n\\nCreate an empty page, for example \\u0022Blog\\u0022, in Pages \\u003E Add New.\\n\\n\\n\\nGo to Settings \\u003E Reading and set \\u0022Your homepage displays\\u0022 to \\u0022A static page\\u0022.\\n\\n\\n\\nPick your new page as the Posts page and save.\\n\\n\\n\\nPublish at least one post. Until you do, the blog page has nothing to show.\\n\\n\\n\\n\\nUse a normal page here. The GeoDirectory template pages (search, details, archive, add listing and so on) are disabled in the Posts page and Homepage dropdowns on purpose.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Where is the GeoDirectory Dashboard add-on and its documentation?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"The Dashboard add-on was for GeoDirectory v1 and isn\\u0027t available any more. GeoDirectory v2 has a dashboard built in, so you don\\u0027t need an add-on.\\n\\n\\n\\n\\nFor site owners: GeoDirectory \\u003E Dashboard in wp-admin.\\n\\n\\n\\nFor your users: add the GD \\u003E Dashboard block or [\\u003Cspan\\u003E\\u003C\/span\\u003Egd_dashboard] shortcode to a page. Logged-in users see links to their listings and other GeoDirectory account options there.\\n\\n\\n\\n\\nTo let users edit or delete their own listings from the front end, see how can my users edit or delete their listings?.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Can I run a job board with GeoDirectory and BuddyPress?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Yes. GeoDirectory has no separate job board add-on, but you can set up a job listings post type with its own fields and use it alongside BuddyPress.\\n\\n\\n\\n\\nCreate a post type for jobs with the Custom Post Types add-on.\\n\\n\\n\\nIn GeoDirectory \\u003E Settings \\u003E General \\u003E Dummy Data you can install the Job Board demo data on that post type. It adds job categories and fields such as company name, logo, salary, deadline date, job type and job sector, which you can then edit or remove.\\n\\n\\n\\nAdd any other fields you need, for example an application link, as custom fields.\\n\\n\\n\\n\\nThe BuddyPress Integration add-on connects GeoDirectory with BuddyPress member profiles, so members see the listings they posted.\\n\\n\\n\\nGeoDirectory does not manage CVs or track applications. If you need those, use a dedicated job board plugin next to GeoDirectory, or add a contact form to the job listings, for example with the Ninja Forms integration.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What is the  shortcode for?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"[\\u003Cspan\\u003E\\u003C\/span\\u003Egd_notifications] is the shortcode for the GD \\u003E Notifications block. It marks the spot where GeoDirectory and its add-ons print messages on a page, which is why you find it on the GeoDirectory template pages. It shows two kinds of message:\\n\\n\\n\\n\\nAdmin hints: the blue info boxes that explain a page and link to the docs. Only administrators see them.\\n\\n\\n\\nNotices for visitors, for example the warning on a listing that has been marked as closed down or temporarily closed.\\n\\n\\n\\n\\nTo turn the hints off, go to GeoDirectory \\u003E Settings \\u003E General \\u003E Developer and untick Enable admin hints, or click the Disable hints link inside any hint.\\n\\n\\n\\nThere is no setting for writing your own messages to visitors in this block. A developer can add one with the geodir_notifications filter. See GD \\u003E Notifications for the block options.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I enable the PHP exif extension?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Exif is a PHP extension on your server. WordPress and GeoDirectory use it to read the orientation saved in phone photos and rotate them the right way up when they are uploaded. Without it, some mobile photos can appear sideways.\\n\\n\\n\\nHow to enable it depends on your hosting:\\n\\n\\n\\n\\nManaged hosting: ask your host to enable the exif PHP extension.\\n\\n\\n\\ncPanel and similar panels: look for a PHP extensions or Select PHP Version screen and tick exif.\\n\\n\\n\\nLocal or your own server: enable extension=exif in php.ini and restart the web server.\\n\\n\\n\\n\\nTools \\u003E Site Health in WordPress will flag the extension if it is missing.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Does GeoDirectory work with Rank Math for listing images and SEO analysis?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Yes. When Rank Math is active, GeoDirectory adds the listing images to the Rank Math sitemap for each listing, using the image title. On the backend listing editor it also passes the uploaded images, text areas and text fields (with website fields as links) to the Rank Math content analysis, so they count towards the score. Each image is given its title as the alt text for that check.\\n\\n\\n\\nTo set the title, caption and alt text of listing images, see How to set the ALT, title or caption for images?. For titles and descriptions, GeoDirectory variables work in Rank Math: How to use GeoDirectory snippet variables in Rank Math.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why do maps stop loading when I use Autoptimize?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Autoptimize combines and moves JavaScript, and GeoDirectory\\u0027s map scripts need to load in their normal order with the inline map settings next to them. When they are combined, the map and the Near Me button can stop working.\\n\\n\\n\\n\\nIn Settings \\u003E Autoptimize, add wp-content\/plugins\/geodirectory\/ and maps.googleapis.com to the list of scripts to exclude.\\n\\n\\n\\nUntick Aggregate inline JS and Add try-catch wrapping.\\n\\n\\n\\nSave, clear the Autoptimize cache and your page cache, and check a map page in a private window.\\n\\n\\n\\n\\nIf your maps still don\\u0027t load, open the browser console. A Google key error there is a separate problem with your API key. GeoDirectory and caching compatibility covers other caching and optimization plugins.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I use my own home page with GeoDirectory?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Set it in WordPress, not in GeoDirectory. Go to Settings \\u003E Reading, choose A static page for \\u0022Your homepage displays\\u0022, and select your page.\\n\\n\\n\\nGeoDirectory no longer has a separate GD Home page setting. Its page settings in GeoDirectory \\u003E Settings \\u003E General \\u003E Pages are for the Location page, Add listing page, Search page and the template pages, and none of these should be used as your home page. Build your home page with the GeoDirectory blocks you want, such as GD \\u003E Search, GD \\u003E Map and GD \\u003E Listings.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Which plugin can I use to show banner ads on a GeoDirectory site?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Our GetPaid Advertising add-on lets you sell banner ad space and show the ads on your site, and it works with GeoDirectory. See GeoDirectory Integration with GetPaid Advertising.\\n\\n\\n\\nIf you only want to show Google AdSense or ads you manage yourself, any ad plugin that gives you a block, widget or shortcode will work. GeoDirectory pages such as the archive and details templates are normal WordPress pages, so you can add an ad block to them, or to a widget area in your theme.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022XML Parsing Error: xml processing instruction not at start of external entity\\u0022 on my sitemap?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"This error means something printed text, usually a blank line or space, before the start of the sitemap XML. The cause is almost always a theme or plugin PHP file with whitespace before its opening \\u003C?php tag or after a closing ?\\u003E tag. Custom code added to functions.php is a common culprit.\\n\\n\\n\\n\\nOpen the sitemap URL and view the page source. If the first line is blank, extra output is the cause.\\n\\n\\n\\nSwitch to a default theme and check again.\\n\\n\\n\\nDeactivate plugins one at a time until the sitemap loads, then fix or replace the file that adds the whitespace.\\n\\n\\n\\n\\nGeoDirectory isn\\u0027t the cause if the error is still there with all GeoDirectory plugins deactivated. In that case check your other plugins, the theme, and any code snippets.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What do I do about \\u0022There has been a critical error on your website\\u0022 after updating GeoDirectory?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"WordPress shows this message when a plugin causes a PHP fatal error. It also emails the site admin a link to recovery mode, where you can log in with the faulty plugin paused.\\n\\n\\n\\n\\nOpen the recovery link from the email, or rename the plugin folder in wp-content\/plugins by FTP, to get back into the admin.\\n\\n\\n\\nUpdate GeoDirectory and all its add-ons together. An add-on that is newer or older than the core plugin is the most common cause.\\n\\n\\n\\nIf the error is still there, turn on WP_DEBUG_LOG in wp-config.php and look in wp-content\/debug.log for the error. It names the file and line.\\n\\n\\n\\n\\nSend the error from the log to our support team so we can fix it.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I translate the author, page and tags parts of my GeoDirectory URLs?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"These three words come from different places.\\n\\n\\n\\nThe tags part is a GeoDirectory setting. Go to Settings \\u003E Permalinks, scroll to GeoDirectory permalinks and change Tag base (default tags). The Category base (default category) is next to it. Save the page to update the rewrite rules.\\n\\n\\n\\nThe author and page parts are set by WordPress itself, not by GeoDirectory. You can change them with a small snippet, for example in the Code Snippets plugin:\\n\\n\\n\\nadd_action( \\u0027init\\u0027, function() {\\n\\tglobal $wp_rewrite;\\n\\t$wp_rewrite-\\u003Eauthor_base     = \\u0027autor\\u0027; \/\/ instead of author\\n\\t$wp_rewrite-\\u003Epagination_base = \\u0027seite\\u0027; \/\/ instead of page\\n} );\\n\\n\\n\\nReplace the two words with your own, then go to Settings \\u003E Permalinks and click Save Changes. If you use UsersWP, its profile page has its own slug, so you can use that instead of the author pages.\\n\\n\\n\\nOld URLs stop working after a change like this, so set up redirects if the site is already indexed.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why is my GeoDirectory translation overwritten after updates?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"wp-content\/languages\/plugins is where WordPress saves the translations it downloads from translate.wordpress.org. Whenever it fetches language updates, which can happen after installing or updating any plugin, it replaces the GeoDirectory files in that folder, and your own translation is lost.\\n\\n\\n\\nSave your files in a folder WordPress does not update instead:\\n\\n\\n\\n\\nCreate the folder wp-content\/languages\/geodirectory.\\n\\n\\n\\nUpload your files there named for your language, for example geodirectory-de_DE.mo and geodirectory-de_DE.po.\\n\\n\\n\\n\\nGeoDirectory loads that file before the downloaded one, so your strings win and any missing ones still come from the official translation. For a few strings only, see How to change just one language string.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"How do I fix \\u0022Call to undefined function get_userdata()\\u0022 when I activate GeoDirectory?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"This error means a database query ran before WordPress had loaded its user functions. GeoDirectory hooks into WordPress queries, so when another plugin or theme runs a query too early in loading, activating GeoDirectory can be what brings the error to the surface. The fix belongs in the code that runs the early query.\\n\\n\\n\\n\\nDeactivate other plugins one at a time to find the one that clashes. In the original report it was a sports plugin.\\n\\n\\n\\nUpdate that plugin and your theme to their latest versions.\\n\\n\\n\\nIf the error stays, send the full error message, including the file list from the stack trace, to that plugin\\u0027s developer and to us.\\n\\n\\n\\n\\nThe stack trace in your PHP error log shows which plugin started the query, which is usually enough for its developer to fix it.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"What does \\u0022Class GeoDir_Defaults not found\\u0022 or \\u0022Call to undefined function geodir_get_option()\\u0022 mean?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"Both errors mean a GeoDirectory add-on loaded while the GeoDirectory core plugin was missing, inactive or too old. The add-ons rely on functions and classes from core, so they cannot run without it, and WordPress pauses them in recovery mode.\\n\\n\\n\\n\\nGo to Plugins and check that GeoDirectory is installed and active.\\n\\n\\n\\nUpdate GeoDirectory core to the latest version, then update the add-ons.\\n\\n\\n\\nActivate or resume the add-ons once core is running.\\n\\n\\n\\n\\nWhen you update, do core first and the add-ons after. If you need to reinstall core, deactivating and deleting the plugin does not remove your listings unless Remove Data on Uninstall? is ticked in GeoDirectory \\u003E Settings \\u003E General \\u003E Uninstall. Take a backup before you start anyway.\\n\\n\\n\\nSites still on GeoDirectory v1 need to move to the current version, because v1 is no longer maintained and current add-ons need the current core. See Upgrading from GDv1 to GDv2.\"\n            }\n        },\n        {\n            \"@type\": \"Question\",\n            \"name\": \"Why does a WPML translated listing link to the home page instead of the listing?\",\n            \"acceptedAnswer\": {\n                \"@type\": \"Answer\",\n                \"text\": \"This happens when WPML adds the language as a URL parameter, for example ?lang=en. GeoDirectory listing URLs need the language in the path, so go to WPML \\u003E Languages \\u003E Language URL format and choose Different languages in directories. Then save your permalinks once in Settings \\u003E Permalinks.\\n\\n\\n\\nAfter that, translated listings get links such as \/en\/places\/... and open the translated listing. The WPML Multilingual Setup Guide covers the rest of the setup.\"\n            }\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Answers to common GeoDirectory questions about general. Click a question to open the answer.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"article\/tags":[],"article\/categories":[211,432],"class_list":["post-2308","gd_place","type-gd_place","status-publish","hentry","gd_placecategory-tips-tricks-more","gd_placecategory-how-tos"],"_links":{"self":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2308","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article"}],"about":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/types\/gd_place"}],"author":[{"embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/comments?post=2308"}],"version-history":[{"count":3,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2308\/revisions"}],"predecessor-version":[{"id":2958,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/2308\/revisions\/2958"}],"wp:attachment":[{"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/media?parent=2308"}],"wp:term":[{"taxonomy":"gd_place_tags","embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/tags?post=2308"},{"taxonomy":"gd_placecategory","embeddable":true,"href":"https:\/\/wpgeodirectory.com\/documentation\/wp-json\/wp\/v2\/article\/categories?post=2308"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}