EffortLess Multisite Auto Translate is a Network-Activated plugin for WordPress Multisite. When a post, page, or custom post type is published or updated on one site in the network (the “source” site), the plugin sends its title, content, categories, and tags to your chosen translation provider (OpenAI or DeepL) and creates or updates a matching translated copy on each of the network’s other sites you’ve selected as a “destination”. Translation runs in the background via WordPress Cron (or Action Scheduler, if another active plugin provides it), not during the page save itself.
Content is translated block by block: each Gutenberg block is sent to the API and reassembled individually, so block structure, attributes, and nested layouts (columns, groups, galleries) survive translation. Shortcodes and core/html blocks are left untouched rather than translated. A Glossary lets you pin specific terms (brand names, proper nouns) to a fixed translation, or to “do not translate,” per destination site if needed.
core/html blocks (skipped by default; a elmat_translate_html_block filter exists for developers who want to opt them in)gpt-4o-mini (default) or gpt-4o. OpenAI only.A running character-usage total (this month + lifetime) is shown above the API key fields once translation has run at least once — a rough usage indicator, not exact billing; check your provider’s own dashboard for that.
A “Translation Status” box also appears in the post editor’s sidebar (source site only) showing each destination’s status for the post you’re editing, without a trip to Network Admin.
Bulk Translate All Posts, Force Re-translate All (clears retry/failure counters and re-sends everything), Sync Design & Templates (switches every destination site’s active theme to match the source, network-enabling it first if needed, then copies global styles, site icon, logo, and queues templates/patterns for translation — a confirmation dialog states the theme change before you proceed), Resync Media Links (also runs automatically whenever the Shared Media Library setting changes), Clean Destinations (removes orphaned translations and non-translation content added directly on a destination site), Flush Permalinks, and Emergency Stop (cancels every pending translation). Stuck queue entries clear themselves automatically within about an hour — there’s no separate cleanup button for that.
<input>, <select>, <textarea>) and scripts inside a translated custom-HTML block are removed on save, as they would be for any non-privileged user.elmat_* site options and the translation-linking postmeta.This plugin sends content to your chosen translation provider’s API in order to translate it — this is the plugin’s core function and cannot be disabled while automatic or manual translation is used. Only the provider you’ve selected in Settings is ever contacted.
OpenAI (api.openai.com) — used when Translation Provider is set to OpenAI. What is sent: the post title, the text content of each Gutenberg block (shortcodes and core/html blocks are excluded), the names of categories/tags/taxonomies, and (if set) your “Additional Instructions” text. Terms of use: https://openai.com/policies/terms-of-use — Privacy policy: https://openai.com/policies/privacy-policy
DeepL (api.deepl.com / api-free.deepl.com) — used when Translation Provider is set to DeepL. What is sent: the same title/content/taxonomy names as above (Additional Instructions does not apply to DeepL). Terms of use: https://www.deepl.com/en/pro-license — Privacy policy: https://www.deepl.com/en/privacy/
WordPress AI Client (WordPress 7.0+ only) — used when Translation Provider is set to “WordPress AI Client”. The same title/content/taxonomy names as above are sent, but to whichever external AI provider your site has configured under Settings Connectors, not to this plugin or its developer — this plugin never sees that provider’s identity, endpoint, or API key, only the result. Check your configured Connectors provider’s own terms of use and privacy policy.
Either way, this happens every time a post is published or updated on the configured source site, and whenever “Bulk Translate All Posts” or a manual per-post translation is triggered. No personal visitor data, and no data from any site other than the post being translated, is sent. Using OpenAI or DeepL requires your own API key for that provider (entered in the plugin’s settings); using the WordPress AI Client instead defers entirely to whatever provider and credentials your site’s Connectors screen has configured. Either way this is billed to your own account directly — the plugin developer has no access to your key, your account, or the content sent.