SoftGlaze Search (Multilingual)
The multilingual build of SoftGlaze Search: the same Mapbox directory search plus a language layer and a wider set of configured post types.
by Azhar Ali · github.com/softglazee/softglaze-search-multilingual · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/softglazee/softglaze-search-multilingual/archive/refs/heads/master.zipReadme
SoftGlaze Search (Multilingual)
Version 1.0.0 · 24 files · text domain softglaze-search
The multilingual build of SoftGlaze Search. Same directory search, plus a language layer and a wider set of configured post types.
One of two divergent builds. The other is
softglaze-search. They share table names and shortcode tags, so only one may be active on a given site.
How it differs from the base build
It carries two functions the base build does not — sg_search_get_current_lang_context() and sg_search_get_ui_translations() — which is the language layer this branch exists for. It also passes language and country through to the frontend, and configures a longer list of post types. The base build has one function this one lacks, sg_search_filter_expertise_callback(). Everything else is the same function set with diverged bodies.
Provides
- Shortcodes —
[sg_search_form],[sg_search_results_page],[sg_search_form_single],[sg_search_form_dual],[sg_search_results_display],[sg_category_block],[sg_display_providers],[sg_latest_blog_grid], plus a generated[list_all_<slug>]per configured post type - Admin — Settings page holding the Mapbox public token (
softglaze_search_mapbox_key), result page URL and form HTML - Universal templates —
single-cpt-universal.phprenders any configured post type, not just one
Tables
{prefix}sg_providers, {prefix}sg_reviews, {prefix}sg_faqs, {prefix}sg_suggestions. sg_providers is also written by SoftGlaze Trustoo Scraper.
Requires
ACF, and a Mapbox public token set in the plugin's settings. No token is bundled; map and autocomplete stay inert until one is entered.
Known issues, both pre-existing
assets/css/map.jsposts to an AJAX actionsoftplug_fetch_locationsthat no PHP handler registers. The script is enqueued, so the request fails silently.- The plugin writes to
{prefix}sg_suggestionsbut never creates that table.
Removed dead code
Three files were deleted after checking they were unreachable: includes/painters-cpt.php (41 KB), includes/updatepost.php (33 KB) and includes/archive-cpt-universal.php. None was required by any file, none defined a symbol the loaded code called, none was wired to a template filter, and no other plugin referenced them. They held the only registration of a painters post type with painters_category / painters_services taxonomies, and the only CREATE TABLE for {prefix}sg_providers — all of which had therefore never run. No loaded file reads that table. The code remains in git history if it is ever wanted back.
Licence
GPLv2 or later — see LICENSE. Copyright (C) 2026 Azhar Ali (SoftGlaze).
This plugin ships no credentials. Every API key it needs is entered in the WordPress admin and stored as an option.