Text till tal för WPML-sajter: Det som faktiskt fungerar
Kör du en WPML-sajt och vill att varje översättning ska ha sin egen berättarröst på rätt språk? Då måste tillägget du väljer klara tre saker: läsa det översatta inlägget, generera en separat ljudfil per språk och detektera rätt språk vid AJAX-anrop. De flesta text till tal-tillägg misslyckas med minst en av dem. Text till tal - TTSWP är byggt för att hantera alla tre.
Det här inlägget är den praktiska motsvarigheten till vår guide för Weglot. Den tekniska utgångspunkten är den motsatta, och vi börjar med att förklara varför.
WPML lagrar översättningar som riktiga inlägg. Weglot gör det inte.
WPML och Weglot löser flerspråkig WordPress på helt olika sätt, och den skillnaden avgör vad ett text till tal-tillägg behöver göra.
WPML skapar ett separat inlägg för varje översättning. Den engelska versionen av en artikel finns i wp_posts med ett ID. Den spanska versionen finns i samma tabell med ett annat ID. WPML kopplar ihop dem via tabellen icl_translations. Den översatta texten är riktig text i databasen, redigerad av en människa eller via WPMLs maskinöversättning.
Weglot fungerar tvärtom. Databasen innehåller bara originalet. Översättningarna skapas i realtid och injiceras i HTML-koden innan sidan når webbläsaren. Ett tillägg som läser från get_post() på en Weglot-sajt ser alltid bara källspråket.
För text till tal förändrar det allt. Med WPML är det korrekt att läsa inläggsinnehållet direkt från databasen. Den översatta texten finns redan där. Felpunkterna handlar om vilket inlägg tillägget läser, vilket språk det tror att det befinner sig i och om det lagrar en eller flera ljudfiler.

De fyra vanligaste felen i WPML-anpassade TTS-tillägg
Vi testade flera uppsättningar på en flerspråkig WPML-staging-sajt. Samma fyra problem dök upp gång på gång. Har ditt nuvarande tillägg något av dessa, är ljudet som dina besökare hör inte det du tror att du publicerade.
1. Fel språk på ljudet på grund av AJAX-språkdetektering
Det här är det dolda problemet. De flesta text till tal-spelare hämtar ljudfilen eller ström-URL:en via en admin-ajax- eller REST-förfrågan efter att sidan laddats. I den förfrågan har WordPress tappat URL-kontexten från fronten. Tillägget frågar WPML «vilket språk är vi på?» och får fel svar.
Den vanliga orsaken är den gamla konstanten ICL_LANGUAGE_CODE. Den definieras en gång tidigt i förfrågan och speglar det språk WPML detekterade vid start. Under ett AJAX-anrop från en spansk sida returnerar den konstanten ofta standardspråket, inte spanska. Då genererar TTS-tillägget engelska ljud för en spansk artikel, eller hämtar en cachad engelsk fil och spelar den under den spanska spelaren.
Rätt tillvägagångssätt är att använda WPMLs runtime-filter. Filtret wpml_current_language returnerar det aktiva språket just när du frågar. Hooken wpml_post_language_details returnerar vilket språk ett specifikt inlägg tillhör, vilket är ännu säkrare eftersom det knyter ljudet till inläggs-ID:t snarare än förfrågningstillståndet.
Så här märker du det som läsare: öppna ett översatt inlägg, tryck på play och lyssna på den första sekunden. Hör du en engelsk röst på en icke-engelsk sida har tillägget fel i sin språkdetektering.
2. En ljudfil delas av alla översättningar
En del tillägg genererar ljud när originalinlägget publiceras och kopplar sedan samma fil till alla översättningar. Det är snabbt och billigt. Det är också fel. En spansk läsare får engelsk berättning, eller en syntetisk accent som inte stämmer med sidan de läser.
Eftersom WPML-översättningar är separata inlägg med separata ID:n är det rätta beteendet att generera en ny ljudfil per översatt inlägg. Varje fil lagras mot sitt eget inläggs-ID och visas bara för den översättningen. TTSWP följer den här modellen och använder inläggs-ID:t, inte originalets ID, som cachenyckel.
3. Samma röst läser alla språk
En fransk artikel berättad av en engelsktränad röst låter fel även när orden är korrekta. ElevenLabs-röster bär accent och prosodi från sin träningsdata. En röst tränad på amerikansk engelska läser franska med amerikansk accent om du inte tilldelar en röst som matchar målspråket.
Med TTSWP kan du koppla en ElevenLabs-röst till varje WPML-språk. Den spanska översättningen får en spansktränad röst, den tyska en tysk röst och så vidare. Se dokumentationen för språk-till-röst-mappning för exakt uppsättning.
4. Schema som inte anger vilket språk ljudet är på
Det här är AEO-detaljen de flesta tillägg missar. AudioObject-strukturdata bör ha en inLanguage-egenskap. Värdet ska vara en IETF BCP 47-tagg (es, de, nb-NO) som matchar sidans hreflang.
Ett matchande inLanguage-värde ger sökmotorer och AI-verktyg en tydlig, maskinläsbar signal om vilket språk ljudet är på. Det förstärker hreflang-signalen som redan finns på sidan. Saknas schemat, eller delar alla översättningar samma engelska värde, försvinner den signalen och språkmedvetna system kan inte skilja versionerna åt. Vi går igenom hur AI-motorer hanterar ljud i vår guide om AEO och ljudinnehåll.
Välj rätt ElevenLabs-modell för din WPML-täckning
ElevenLabs har flera modeller och de täcker inte samma språk. Om WPML servar ett språk som ElevenLabs inte stöder i den modell du valt kan du inte berätta den översättningen på ett bra sätt.
Aktuell täckning från 2026:
- Multilingual v2 stöder 29 språk, inklusive engelska, spanska, franska, tyska, italienska, portugisiska, nederländska, polska, svenska, danska, finska, turkiska, arabiska, hindi, japanska, koreanska och kinesiska.
- Flash v2.5 stöder 32 språk, alla v2-språk plus ungerska, norska och vietnamesiska, med en modelllatens på ungefär 75 ms.
- Eleven v3 stöder 74 språk, den bredaste täckningen av alla modeller. Den har en begränsning som väger tyngre än dess extra funktioner: den är inte byggd för realtidsanvändning. ElevenLabs anger det uttryckligen. Modellen är större och använder en ljudkodek med högre kvalitet, vilket gör att genereringen tar längre tid. För realtids- eller konversationsscenarier rekommenderar ElevenLabs Flash v2.5 i stället.
För en WPML-sajt med en norsk översättning räcker inte Multilingual v2. Flash v2.5 klarar det. Behöver sajten ett språk som bara v3 stöder accepterar du längre generationstid i utbyte mot täckning. TTSWP dirigerar varje språk till en röst du väljer, så du kan blanda modeller efter behov.
Så testar du om ditt TTS-tillägg verkligen hanterar WPML
Du behöver inte läsa kod för att kontrollera det här. Fem minuter i webbläsaren berättar vad som händer.
- Byt språk. Öppna originalartikeln och byt sedan till en översättning via WPMLs språkväxlare. Kontrollera att URL:en ändras (till exempel till
/es/) och att inläggssluggen är den översatta sluggen. - Tryck play och lyssna. Rösten ska matcha sidans språk. En engelsk röst på en spansk sida betyder att tillägget misslyckades i steg ett.
- Inspektera ljud-URL:en. Högerklicka på spelaren och kopiera ljudkällan. Jämför den med ljud-URL:en på originalartikeln. Är båda URL:erna identiska oavsett språk delar tillägget en enda fil.
- Visa sidkällan och sök efter
AudioObject. Leta efter ettinLanguage-fält. Det ska motsvara sidans språkkod. Saknas fältet eller är det alltidenär schemat fel. - Kontrollera hreflang.
inLanguagepå ljudet ska matcha sidanshreflang. Avvikelser förvirrar AI-sökning och bryter per-språks-citering.
Kör den checklistan innan du köper något. Den fungerar för alla TTS-tillägg, inte bara TTSWP.
Så ser en korrekt WPML TTS-uppsättning ut
Det här rekommenderar vi på en produktions-WPML-sajt. Varje steg kopplas till ett fel ovan.
| Problem | Fel tillvägagångssätt | Rätt tillvägagångssätt |
|---|---|---|
| Språk i AJAX | Konstanten ICL_LANGUAGE_CODE | Filtret wpml_current_language eller wpml_post_language_details kopplat till inläggs-ID:t |
| Ljudlagring | En fil delad av alla översättningar | En fil per översatt inläggs-ID, servad från CDN |
| Röstval | Samma röst för alla språk | En ElevenLabs-röst mappad per WPML-språk |
| Modellval | Hårdkodad modell för alla språk | Val per språk mellan Multilingual v2, Flash v2.5 eller Eleven v3 |
| Schema | Saknat eller engelskt AudioObject | AudioObject med inLanguage som matchar sidans hreflang |
TTSWP följer högerkolumnen som standard. Tillägget läser det översatta inlägget direkt, genererar en ny ljudfil per inläggs-ID, levererar den via CloudFront och genererar per-språks AudioObject-schema. WPML-integrationsdokumentationen går igenom uppsättningen steg för steg.
En ärlig begränsning
Ljud per språk kostar fler tecken än en delad fil. Publicerar du en artikel på 1 500 ord och översätter den till fem språk betalar du för fem genereringar, inte en. Det är priset för korrekthet. En delad fil vore billigare, men ljudet skulle inte matcha sidan. Vi rekommenderar inte att offra läsarupplevelsen för att spara krediter, och det säger vi rent ut i kreditdokumentationen.
Är budgeten tight, generera ljud bara för de språk som faktiskt får trafik. WPMLs språkstatistik och din analys berättar vilka översättningar som är värda att berätta.
Vanliga frågor
Stöder TTSWP WPML direkt?
Ja. När båda tilläggen är aktiva detekterar TTSWP WPML, läser det översatta inläggsinnehållet för varje språk och lagrar en separat ljudfil per översättning. Du tilldelar en röst per språk i TTSWP-inställningarna och publicerar sedan översättningar som vanligt. Ljudet regenereras när en översättning uppdateras. Se WPML-integrationssidan för installationssteg.
Varför läser mitt nuvarande TTS-tillägg allt på engelska på översatta sidor?
Den troligaste orsaken är den utfasade konstanten ICL_LANGUAGE_CODE inuti ett AJAX-anrop. Vid AJAX returnerar den konstanten ofta sajtstandardspråket i stället för det aktiva, så tillägget genererar eller servar engelska ljud på icke-engelska sidor. Lösningen är att byta till filtret wpml_current_language eller läsa språket direkt från inläggs-ID:t.
Kan jag använda olika ElevenLabs-röster per WPML-språk?
Ja. TTSWP mappar en ElevenLabs-röst till varje WPML-språk. Spanska översättningar läses av en spansk röst, tyska av en tysk röst och så vidare. Du kan också välja olika modeller per språk, vilket spelar roll när ett målspråk bara stöds av Flash v2.5 eller Eleven v3 och inte av Multilingual v2.
Vilka språk täcker ElevenLabs för WPML-sajter?
Multilingual v2 täcker 29 språk, Flash v2.5 täcker 32 (med norska, ungerska och vietnamesiska tillagda) och Eleven v3 täcker 74 språk. Välj den modell med bredast täckning som din latensbudget tillåter. De flesta WPML-sajter fungerar bra med Multilingual v2 eller Flash v2.5. Sajter med ovanligare språk flyttar de översättningarna till Eleven v3.
Genererar TTSWP per-språks-schema för AI-sökning?
Ja. TTSWP skapar ett AudioObject per översatt inlägg med ett inLanguage-värde som matchar sidans hreflang. Det ger sökmotorer och AI-verktyg en tydlig signal om vilket ljud som hör till vilken språkversion av artikeln, i stället för att alla översättningar taggas likadant.
Nästa steg
Kör femstegs-webbläsartestet på det TTS-tillägg du har idag. Misslyckas något steg är det det felet du behöver åtgärda innan du lägger till fler översättningar. Vill du ha en uppsättning som klarar alla fem från start, installera Text till tal - TTSWP från WordPress.org, anslut det till TTSWP-backendet och tilldela en röst per WPML-språk. Tillägget sköter resten.
Relaterade artiklar
Bästa text till tal-plugins för WordPress (2026)
En neutral guide för 2026 om de sju bästa WordPress-plugins för text till tal, med tydliga styrkor, svagheter och en fullständig jämförelsetabell.
Text till tal för Weglot på WordPress: Vad som faktiskt fungerar
De flesta TTS-tillägg påstår sig stödja Weglot men läser från databasen, inte från översättningen. Så här ser verkligt Weglot-stöd ut.
Vad är text till tal? En enkel guide
Text till tal omvandlar skrivet innehåll till talat ljud. Lär dig hur det fungerar, varför det spelar roll och hur du lägger till det på din WordPress-sajt.