Midvash Bible References finds Bible references in your content and quietly turns each one into a styled link with a hover-tooltip that shows the verse text — fetched live from the Midvash Bible API and cached locally for performance. No account and no configuration required for the default experience.
It works on any post or page in any of nine languages, recognises both the full book name (“John 3:16”) and the standard abbreviation of the site’s language (“Jn 3:16” in English, “Jo 3:16” in Portuguese), accepts the colon and dot separators, supports verse ranges (“John 3:16-18”) and chapter-only references (“Psalms 23”), and links each reference to the matching verse on midvash.com using the locale-appropriate URL.
the_content (posts and pages) — including localised book names and abbreviations across 9 languages.[mvbr_votd] shortcode.prefers-color-scheme and matching opt-in body classes (dark-mode, theme-dark, wp-dark-mode).John 3:16 / João 3:16 / Juan 3:16 / Jean 3:16 / Johannes 3:16 / Giovanni 3:16 / Иоанн 3:16 / 요한복음 3:16 / 约翰福音 3:16John 3.16 (alternative separator)John 3:16-18 (verse ranges, up to 50 verses)Gn 1:1, Jn 3:16 (the abbreviations of the language chosen in Settings, written with chapter and verse)Psalms 23 / Salmos 23 / Psaumes 23 (chapter-only, full book name)Only the language chosen in Settings is matched, book names start with a capital letter and abbreviations must be written exactly, so everyday words are left alone: “Os 13 apóstolos”, “at 10:30”, “is 5” or “Mar 5” never become links. Text inside existing links, headings, code blocks and HTML attributes (image alt, src, srcset) is never touched.
The list below mirrors the Midvash API catalogue in October 2026 and may grow over time. The plugin’s Settings Midvash Bible References page always shows the current catalogue.
Portuguese — 22: AA ©, ACF ©, ARA ©, ARC ©, AS21 ©, BPT ©, JFAA ©, KJA ©, MSGPT ©, NAA ©, NBV ©, NTLH ©, NVI ©, NVT ©, ALMEIDA-LIVRE, BPM, ONBV, NVA, BLPT, TFT, OL ©, ALM1911
English — 18: KJV, MSG ©, NIV ©, NLT ©, WEB, ASV, YLT, DRA, BBE, GENEVA1599, BSB, LSV, NET ©, DARBY, RV1885, CPDV, WMB, FBV
Spanish — 7: NTV ©, NVIES ©, RVR1909, RVG, SEV, ONBV-ES, PDT
French — 6: LSG, DARBY-FR, MARTIN1744, CRAMPON, FRASBL, NCL
German — 7: LUTH1912, SCHL1951, ELB1905, MEN, LUTH1545, ELB1871, TEXTBIBEL
Italian — 3: DIODATI, RIVEDUTA, DIODATI1885
Russian — 1: SYNODAL
Korean — 1: KOR
Chinese (Simplified and Traditional) — 4: CUV, CUVS, CCB, CCBT
© = version with reserved rights, served to this plugin by the Midvash API (one chapter per reference).
Default version per locale: ONBV (pt-br), BSB (en), RVR1909 (es), LSG (fr), LUTH1912 (de), RIVEDUTA (it), SYNODAL (ru), KOR (ko), CUV (zh).
Beyond the plugin’s nine display locales, the full Midvash API catalogue spans 153 Bible versions in 81 languages — including original-language texts such as the Hebrew Aleppo Codex and WLC, the Greek LXX and SBLGNT, and the Latin Vulgate. As new versions land in the API they appear in the plugin’s settings automatically, no update required.
Source code and build tools: https://github.com/midvash/bible-wordpress-plugin
The readable JavaScript and CSS ship in the plugin next to the minified copies (assets/js/*.js, assets/css/*.css). The *-<version>.min.js and *-<version>.min.css files are generated from them by scripts/build-zip.ts in the repository (npx tsx scripts/build-zip.ts, which minifies with esbuild). Define SCRIPT_DEBUG to load the readable files.
This plugin relies on the Midvash Bible API (https://api.midvash.com), a service operated by Midvash, to fetch Bible text and the list of available versions. All calls go from your WordPress server (wp_remote_get) over HTTPS; the visitor’s browser only talks to your own site (admin-ajax.php), never to the API. Nothing is sent when the plugin is activated.
Every call carries two headers: User-Agent: Midvash-WP-Plugin/<version> (e.g. Midvash-WP-Plugin/0.10.3) and X-Midvash-Plugin-Key, a key built into the plugin that is the same for every site. It identifies the plugin, not you or your site, and lets the API serve the versions of midvash.com with reserved rights (marked © in Settings).
The calls, what each one sends, and when:
GET /v1/versions. Sends nothing else. When you open Settings Midvash Bible References, when you change the language there, and in a background task when the cached list is missing. Cached for 7 days.GET /v1/passages. Sends up to 20 references at a time (e.g. “John 3:16”) and the version slug (e.g. “bsb”). Shortly after a visitor opens a post with references. Cached per verse for the configured time (30 days by default).GET /{version}/{book}/{chapter}/{verses}. Sends the reference and the version slug in the path. When a visitor hovers a reference that is not cached yet, and when a Bible Verse block renders. Same cache.GET /votd. Sends the language (e.g. “pt-br”) and the version slug. When the Verse of the Day widget or the [mvbr_votd] shortcode renders. Cached for the day.No personal data is sent: no IP address, no visitor ID, no cookies, no analytics.
If you deactivate the plugin, no further calls are made.
This plugin does not collect, store or transmit any visitor data. No cookies are set, no analytics scripts are loaded, no third-party trackers are injected. Verse lookups are anonymous: the upstream API receives only the verse reference being looked up, not who is looking it up. AJAX rate limiting buckets requests by a salted hash of the requester’s IP that lives in the WordPress transient store for 60 seconds and is then discarded — the raw IP is never stored.