{"id":56,"date":"2026-04-23T16:15:55","date_gmt":"2026-04-23T16:15:55","guid":{"rendered":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/2026\/04\/23\/troubleshooting\/"},"modified":"2026-04-23T16:15:55","modified_gmt":"2026-04-23T16:15:55","slug":"troubleshooting","status":"publish","type":"post","link":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/2026\/04\/23\/troubleshooting\/","title":{"rendered":"Troubleshooting"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\">Troubleshooting<\/h1>\n\n\n<p>Every common issue we&#8217;ve seen, with the exact fix. Use Cmd\/Ctrl+F to find your symptom.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Site is broken (white screen \/ 500 error)<\/h2>\n\n\n<p><strong>Symptom:<\/strong> site shows blank page, or &#8220;There has been a critical error on this website&#8221;<\/p>\n\n\n<p><strong>Diagnose:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Enable WP debug logging in <code>wp-config.php<\/code>:<\/li>\n<\/ol>\n\n\n<p>   &#8220;<code>php define( &#039;WP_DEBUG&#039;, true ); define( &#039;WP_DEBUG_LOG&#039;, true ); define( &#039;WP_DEBUG_DISPLAY&#039;, false ); <\/code>&#8220;<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Reproduce the error.<\/li>\n<li>Check <code>\/wp-content\/debug.log<\/code> for the actual PHP error.<\/li>\n<\/ol>\n\n\n<p><strong>Common fixes:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PHP fatal in a plugin<\/strong> \u2014 disable plugins via SFTP: rename <code>\/wp-content\/plugins\/<\/code> \u2192 <code>plugins-old\/<\/code>. Site comes back. Re-enable one at a time.<\/li>\n<li><strong>Theme function missing<\/strong> \u2014 the theme might be partially uploaded. Re-upload a fresh <code>best-classifieds.zip<\/code> via SFTP, replacing the folder entirely.<\/li>\n<li><strong>Memory limit hit<\/strong> \u2014 bump in <code>wp-config.php<\/code>: <code>define( &#039;WP_MEMORY_LIMIT&#039;, &#039;256M&#039; );<\/code><\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Listing pages render as plain blog posts (no sidebar, no listing UI)<\/h2>\n\n\n<p><strong>Cause:<\/strong> the listing isn&#8217;t recognized as a listing.<\/p>\n\n\n<p><strong>Fix:<\/strong> the post must satisfy ONE of these:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Be assigned to the parent <strong>Listings<\/strong> category, OR<\/li>\n<li>Be assigned to a registered listing sub-category (Vehicles, Property, etc.), OR<\/li>\n<li>Have post meta <code>_bc_price<\/code> or <code>_bc_location<\/code> set<\/li>\n<\/ul>\n\n\n<p>If the WOW Feeder created the listing, all three should be true. If you created it manually, double-check the Categories panel in the post editor.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Price shows as <code>$0<\/code> or <code>$ 0<\/code><\/h2>\n\n\n<p><strong>Cause:<\/strong> the price helper is casting a pre-formatted string to float.<\/p>\n\n\n<p><strong>Fix:<\/strong> versions 2.0.0+ handle this correctly. If you&#8217;re on an older theme, update.<\/p>\n\n\n<p>If you&#8217;re on the latest and still seeing <code>$0<\/code>:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Check the actual <code>_bc_price<\/code> meta value: <code>wp post meta get {post_id} _bc_price<\/code><\/li>\n<li>If it&#8217;s empty, the listing genuinely has no price set<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Category archive title shows raw HTML<\/h2>\n\n\n<p><strong>Symptom:<\/strong> &#8220;Category: <code>&lt;span&gt;Property&lt;\/span&gt;<\/code>&#8221; appears literally.<\/p>\n\n\n<p><strong>Cause:<\/strong> WordPress&#8217;s <code>the_archive_title()<\/code> returns HTML; we have to strip it before escaping.<\/p>\n\n\n<p><strong>Fix:<\/strong> versions 2.0.0+ have this fixed. Update the theme.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Search dropdown shows spinner + empty + results all at once<\/h2>\n\n\n<p><strong>Cause:<\/strong> the <code>[hidden]<\/code> HTML attribute is being overridden by <code>display: flex<\/code>.<\/p>\n\n\n<p><strong>Fix:<\/strong> versions 2.0.0+ have a <code>[hidden] { display: none !important }<\/code> rule. Update the theme.<\/p>\n\n\n<p>If it&#8217;s still happening after update: hard-refresh (Ctrl+Shift+R) to bust browser CSS cache.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">&#8220;Show Contact Email&#8221; button doesn&#8217;t actually show the email<\/h2>\n\n\n<p><strong>Cause:<\/strong> old behavior used <code>mailto:<\/code> directly without revealing the address.<\/p>\n\n\n<p><strong>Fix:<\/strong> versions 2.0.0+ use a two-click reveal. First click shows the email, second click opens the mail composer.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">&#8220;Post Free Ad&#8221; button goes to <code>#<\/code><\/h2>\n\n\n<p><strong>Cause (with Pro):<\/strong> the customizer URL is <code>#<\/code> and the smart routing isn&#8217;t running.<\/p>\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Verify Pro is active and licensed.<\/li>\n<li>Verify <code>\/post-a-listing\/<\/code> page exists. Run the WOW Feeder again if not.<\/li>\n<li>Or set the URL manually at <strong>Customize \u2192 Best Classifieds Options \u2192 Hero \u2192 &#8220;Post Free Ad&#8221; button URL<\/strong>.<\/li>\n<\/ol>\n\n\n<p><strong>Cause (free theme only):<\/strong> the customizer URL was never set.<\/p>\n\n\n<p><strong>Fix:<\/strong> set it to your submission page URL or remove the button by leaving it blank \u2014 the theme hides the button if the URL is empty.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Demo Importer fatal: &#8220;Unexpected token &#8216;<', 'There h'... is not valid JSON\"<\/h2>\n\n\n<p><strong>Cause:<\/strong> a PHP fatal occurred during the listings step. Usually memory exhaustion downloading 144 Pexels images.<\/p>\n\n\n<p><strong>Fix:<\/strong> in <code>wp-config.php<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>define( &#039;WP_MEMORY_LIMIT&#039;, &#039;512M&#039; );\n@ini_set( &#039;memory_limit&#039;, &#039;512M&#039; );\n@ini_set( &#039;max_execution_time&#039;, 600 );<\/code><\/pre>\n\n\n<p>WOW Feeder 1.2.1+ also has a fatal-handler that converts PHP fatals to readable JSON errors \u2014 update the plugin if you&#8217;re on an older version.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Pexels images don&#8217;t appear after import<\/h2>\n\n\n<p><strong>Symptom:<\/strong> Media Library full of gradient placeholders even though the API key is saved.<\/p>\n\n\n<p><strong>Cause:<\/strong> first import ran without a key; subsequent runs skip existing listings.<\/p>\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Tools \u2192 BC WOW Feeder<\/strong> \u2192 click <strong>Test connection<\/strong> \u2192 confirm the key works.<\/li>\n<li>Click <strong>\ud83d\udd04 Refresh images only<\/strong>.<\/li>\n<li>Wait ~2 minutes \u2014 only the photo step runs, replacing placeholders with real photos.<\/li>\n<\/ol>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Pexels API returns 0 photos<\/h2>\n\n\n<p><strong>Cause:<\/strong> rate limit (200\/hour) hit, or the search query is too obscure.<\/p>\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Check the Pexels error displayed inline on the WOW Feeder admin page<\/li>\n<li>If &#8220;rate limit&#8221;: wait an hour, click <strong>Clear Pexels cache<\/strong>, retry<\/li>\n<li>If &#8220;0 photos&#8221;: the query in <code>listings.json<\/code> for that listing is too specific. Open the JSON, change <code>pexels_query<\/code> to something broader.<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">License key shows &#8220;Invalid&#8221;<\/h2>\n\n\n<p>See <a href=\".\/updates-and-license\/\">Updates &#038; License \u2192 Troubleshooting<\/a> for full coverage.<\/p>\n\n\n<p>Quick checklist:<\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Re-copy the key (no whitespace)<\/li>\n<li>Site URL hasn&#8217;t changed since activation<\/li>\n<li><code>curl https:\/\/fasterthemes.com<\/code> works from your server&#8217;s CLI<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Listings vanish after activating a new theme then reactivating Best Classifieds<\/h2>\n\n\n<p><strong>Cause:<\/strong> the other theme used a custom post type, and now those listings don&#8217;t show on a <code>post<\/code>-type-based theme.<\/p>\n\n\n<p><strong>Fix:<\/strong> convert post types via WP-CLI:<\/p>\n\n\n<pre class=\"wp-block-code\"><code>wp post list --post_type=other_post_type --format=ids \n  | xargs -I {} wp post update {} --post_type=post<\/code><\/pre>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Image uploads fail in the frontend submission form<\/h2>\n\n\n<p><strong>Cause:<\/strong> server upload limits.<\/p>\n\n\n<p><strong>Fix:<\/strong> check <code>php.ini<\/code> settings (your host&#8217;s control panel usually exposes these):<\/p>\n\n\n<pre class=\"wp-block-code\"><code>upload_max_filesize = 10M\npost_max_size = 12M\nmax_file_uploads = 20<\/code><\/pre>\n\n\n<p>Restart PHP-FPM after changing.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Customizer doesn&#8217;t preview color palette change<\/h2>\n\n\n<p><strong>Cause:<\/strong> the customizer&#8217;s <code>transport: postMessage<\/code> for instant preview isn&#8217;t wired for palette changes.<\/p>\n\n\n<p><strong>Fix:<\/strong> click <strong>Publish<\/strong> and reload to see the change. Live-preview support for palettes is coming in 2.1.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">&#8220;Post Free Ad&#8221; goes to login but never returns to the submission form<\/h2>\n\n\n<p><strong>Cause:<\/strong> WP login redirect URL has a stale value.<\/p>\n\n\n<p><strong>Fix:<\/strong> verify in the URL bar that <code>?redirect_to=...<\/code> is set when you click the button. If not, the smart routing isn&#8217;t generating the redirect; check Pro is active.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Live search REST endpoint returns 404<\/h2>\n\n\n<p><strong>Cause:<\/strong> rewrite rules need flushing.<\/p>\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n<pre class=\"wp-block-code\"><code>wp rewrite flush<\/code><\/pre>\n\n\n<p>Or via UI: <strong>Settings \u2192 Permalinks<\/strong> \u2192 <strong>Save<\/strong> (without changing anything).<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">OSM map doesn&#8217;t render on listing detail<\/h2>\n\n\n<p><strong>Causes:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Listing has no <code>_bc_lat<\/code> or <code>_bc_lng<\/code> meta set \u2192 no map shows (by design)<\/li>\n<li>Both meta exist but JS isn&#8217;t loading \u2192 Leaflet might be blocked by an aggressive ad-blocker or CSP. Check the browser console for errors.<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Email notifications never arrive<\/h2>\n\n\n<p><strong>Cause:<\/strong> WordPress&#8217;s default <code>wp_mail()<\/code> uses the server&#8217;s <code>sendmail<\/code>, which most cloud hosts block or sandbox.<\/p>\n\n\n<p><strong>Fix:<\/strong> install <strong>WP Mail SMTP<\/strong> plugin and configure with <strong>Postmark<\/strong>, <strong>SendGrid<\/strong>, or <strong>Amazon SES<\/strong>. See <a href=\".\/going-live-checklist\/\">Going Live Checklist \u2192 Email deliverability<\/a> for the full setup.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Stripe checkout opens but payment doesn&#8217;t go through<\/h2>\n\n\n<p><strong>Diagnose:<\/strong><\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Stripe dashboard \u2192 Logs \u2192 look for the failed payment intent.<\/li>\n<li>Check the error code (declined, 3DS failed, etc.).<\/li>\n<\/ol>\n\n\n<p><strong>Common fixes:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Live keys in test mode<\/strong> (or vice versa) \u2014 they don&#8217;t mix; double-check at <strong>Classifieds Pro \u2192 Settings \u2192 Payments \u2192 Stripe<\/strong>.<\/li>\n<li><strong>Webhook signing secret missing<\/strong> \u2014 webhooks fail silently without it.<\/li>\n<li><strong>Currency mismatch<\/strong> \u2014 your Stripe account is configured for a currency that BC Pro isn&#8217;t sending.<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Razorpay checkout doesn&#8217;t open<\/h2>\n\n\n<p><strong>Cause:<\/strong> Razorpay&#8217;s JS SDK can&#8217;t load (CSP, ad-blocker, network).<\/p>\n\n\n<p><strong>Fix:<\/strong><\/p>\n\n\n<ul class=\"wp-block-list\">\n<li>Test in a clean browser without extensions<\/li>\n<li>Check Content Security Policy headers \u2014 <code>https:\/\/checkout.razorpay.com<\/code> must be in <code>script-src<\/code><\/li>\n<li>Ensure outbound HTTPS to <code>*.razorpay.com<\/code> isn&#8217;t blocked by your firewall<\/li>\n<\/ul>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Site is slow \/ PageSpeed scores low<\/h2>\n\n\n<p>The base theme scores ~95 on mobile. If you&#8217;re seeing lower:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Check what plugins you&#8217;ve added \u2014 bloat is usually the culprit (heavy social-share plugins, push notification, on-page chat widgets)<\/li>\n<li>Install a page cache (WP Rocket or Cache Enabler)<\/li>\n<li>Confirm images are being lazy-loaded<\/li>\n<li>Use a CDN (Cloudflare free tier)<\/li>\n<\/ol>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Search returns nothing even though listings exist<\/h2>\n\n\n<p><strong>Cause:<\/strong> WordPress&#8217;s default search excludes <code>private<\/code> and <code>pending<\/code> posts and limits to specific post types.<\/p>\n\n\n<p><strong>Fix:<\/strong> confirm your listings are <code>publish<\/code> status. If using a custom post type, register it with <code>&#039;public&#039; =&gt; true<\/code> and <code>&#039;exclude_from_search&#039; =&gt; false<\/code>.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Custom font isn&#8217;t loading<\/h2>\n\n\n<p>The theme uses self-hosted Geist\/Geist Mono and Playfair Display via the bundled <code>assets\/fonts\/<\/code> files. If a font isn&#8217;t loading:<\/p>\n\n\n<ol class=\"wp-block-list\">\n<li>Check the browser console for 404s on <code>\/wp-content\/themes\/best-classifieds\/assets\/fonts\/...<\/code><\/li>\n<li>Verify the font files actually uploaded (sometimes SFTP misses binary files)<\/li>\n<li>Hard-refresh<\/li>\n<\/ol>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Mobile menu doesn&#8217;t open<\/h2>\n\n\n<p><strong>Cause:<\/strong> <code>navigation.js<\/code> not loading.<\/p>\n\n\n<p><strong>Fix:<\/strong> check <strong>Plugins<\/strong> for a JS-minifier plugin that might be munging the script. Disable it temporarily and verify the menu works without minification.<\/p>\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n<h2 class=\"wp-block-heading\">Got an issue not covered here?<\/h2>\n\n\n<ol class=\"wp-block-list\">\n<li>Check the browser console for JS errors<\/li>\n<li>Check <code>\/wp-content\/debug.log<\/code> for PHP errors<\/li>\n<li>Disable all plugins except Best Classifieds Pro to isolate<\/li>\n<li>Switch to Twenty Twenty-Four briefly to confirm it&#8217;s the theme vs. a global issue<\/li>\n<li>If it&#8217;s reproducible in a clean install, email <strong>support@fasterthemes.com<\/strong> with:<\/li>\n<\/ol>\n\n\n<p>   &#8211; Steps to reproduce &#8211; Screenshot or screen recording &#8211; WordPress version, PHP version, list of active plugins &#8211; The relevant entries from <code>debug.log<\/code><\/p>\n\n\n<p>We aim to respond within 8 hours on business days.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every common issue we&#8217;ve seen, with the exact fix. Use Cmd\/Ctrl+F to find your symptom.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-56","post","type-post","status-publish","format-standard","hentry","category-going-live-and-support"],"_links":{"self":[{"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/posts\/56","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/comments?post=56"}],"version-history":[{"count":0,"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/posts\/56\/revisions"}],"wp:attachment":[{"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/media?parent=56"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/categories?post=56"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/docs.fasterthemes.com\/best-classifieds-wordpress-theme\/wp-json\/wp\/v2\/tags?post=56"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}