Probleem:
Het viel me op dat onder mijn blogs boven het reactieformulier de volgende Engelse tekst werd getoond:
“Your email address will not be published. Required fields are marked *”
Apart want mijn website is volledig in het Nederlands. Bovenstaande tekst is ook geen standaard tekst van WordPress zelf. Deze komt uit het Phlox thema dat ik gebruik.
> Bekijk meer blogs over Phlox thema
Deze tekst bleek al wel naar het Nederlands vertaald te zijn:
Je e-mailadres zal niet worden gepubliceerd. vereiste velden zijn gemarkeerd met *
Oplossing:
Deze tekst wordt toegevoegd door de Phlox PHP functie auxin_modern_comment_form()
middels de volgende regel code:
$comment_notes = auxin_get_option( 'comment_forms_notes', __( 'Your email address will not be published. Required fields are marked *', 'phlox' ) );
Zoals je ziet niets vreemd. Als je de Engelse tekst kopieert en een zoekopdracht uitvoert dan kom je ook uit in het .po bestand met daaronder de Nederlandse vertaling.
De tekst “Add a Comment” wordt wel vertaald naar het Nederlands.
Kan het .mo bestand de boosdoener zijn?
Het kan zijn dat het .mo bestand niet up to date is. Heb ik niet getest. Maar al zou dat het probleem zijn, dan kan ik dat niet oplossen, omdat de vertaalbestanden als updates worden verspreid. Dus als ik hem opnieuw genereer gaan de wijzigingen verloren bij de volgende update vanuit WordPress.
Ik heb daarom de volgende functie toegevoegd aan mijn functions.php:
function child_theme_comment_form( $comment_form, $params ){ $comment_form['comment_notes_before'] = '<p class = "comment-notes">Je e-mailadres zal niet worden gepubliceerd. vereiste velden zijn gemarkeerd met *</p>'; return $comment_form; } add_filter( 'auxin_default_comment_form', 'child_theme_comment_form', 25, 2 );
Natuurlijk pas je geen bestanden aan van het Phlox thema omdat die wijzigingen verloren gaan bij een update.
Deze functie haakt in op de filter functie auxin_default_comment_form()
die auxin_modern_comment_form()
aanroept waarin het probleem ontstaat.
De foutieve vertaling zit in $comment_form['comment_notes_before']
en ik overschrijf deze functie met de Nederlandse vertaling.
Vergeet niet een hogere prio dan 10 te hanteren!
De functieauxin_modern_comment_form()
wordt met de prio 10 aangeroepen. Daarom gebruik ik prio 25 zodat mijn functie child_theme_comment()
hierna wordt uitgevoerd.
Vanaf nu wordt de juiste Nederlandse tekst getoond boven het reactieformulier.
Getest op:
WordPress 6.2.2 en Phlox 2.16.5