Utdrag ur Handbok för WordPress-utvecklare:
Under Undanflyende utmatning är att skydda utdata genom att ta bort oönskade data/tecken, t.ex. felaktiga HTML- eller skripttaggar. Denna mekanism bidrar till att säkerställa att data är säkrade för slutanvändaren före rendering.
WordPress innehåller många hjälpfunktioner som du kan använda för de vanligaste scenarierna.
Var noga med vad varje funktion gör, eftersom vissa tar bort HTML medan andra tillåter det. Du bör använda den funktion som är lämpligast för det innehåll och sammanhang som du vill mata ut. Escape-funktionen ska alltid användas under utmatningen (php echo), inte före.
Utrymningsfunktioner i överblick
esc_attr()
Används för allt annat som skrivs ut i attributet för ett HTML-element.
esc_html()
Används alltid när ett HTML-element innehåller en sektion med data som visas (tar bort html).
esc_js()
Används för inline-javascript.
esc_textarea()
För kodning av text som ska användas i ett textarea-element.
esc_url()
Används för alla webbadresser, inklusive de som finns i src- och href-attributen i ett HTML-element.
esc_url_raw()
Används när en URL lagras i databasen eller i andra fall där okodade URL:er krävs.
wp_kses()
Används för alla opålitliga HTML-element (inläggstext, kommentarstext etc.)
wp_kses_post()
Alternativ version av wp_kses(), som automatiskt tillåter allt HTML-innehåll som är tillåtet i inlägg.
wp_kses_data()
Alternativ version av wp_kses(), som endast tillåter den HTML-kod som tillåts i inläggskommentarer.
Säkerställ flerspråkighet när du flyr
Om utmatningen utförs som i följande exempel säkerställer vi att
- Meningarna förblir intakta (inga meningsbrytningar).
- korrekt separation säkerställs.
- möjlighet att ordna kontakt- och e-postlänkar (eller något liknande) på olika sätt i den översatta meningen.
// Exempel på webbadress (kan ha kommit från en osäker användarinmatning via ett formulär, till exempel).
$contact_url = 'https://www.example.com/contact/';
// escaping av $contact_url
$contact_url = esc_url( $contact_url );
// Exempel på e-postadress (kan ha kommit från en osäker användarinmatning via ett formulär, till exempel).
$contact_email = 'info@mydomain.com';
// escaping, sanitizing & hiding av $contact_email.
// Ja, du bör fortfarande rensa och undkomma e-postadressen även om du använder funktionen antispambot()
$contact_email = esc_url( sprintf( 'mailto:%s', antispambot( sanitise_email( $contact_email ) ) ), array( 'mailto' ) );
esc_html_e( 'Kära gäst, vi kunde inte hitta någon information om din förfrågan.', 'text-domain' );
echo "<br><br>";
printf(
esc_html__( 'Vänligen kontakta oss via vår %1$s eller via %2$s.', 'text-domain' ),
sprintf(
'<a href="/sv/%s/">%s</a>',
$contact_url,
esc_html__( 'Kontaktsida', 'text-domän' )
),
sprintf(
'<a href="/sv/%s/">%s</a>',
$kontakt_email,
esc_html__( 'E-post', 'text-domän' )
)
);
Detta ger översättaren två fullständiga meningar och två enskilda ord att översätta. En översättare behöver därför bara ta hand om följande enkla rader (medan CODE tar hand om resten):
esc_html_e( 'Kära gäst, vi kunde inte hitta någon information om din förfrågan.', 'text-domain' );
// ...
esc_html__( 'Vänligen kontakta oss via vår %1$s eller via %2$s', 'text-domain' )
// ...
esc_html__( 'Kontaktsida', 'text-domän' )
// ...
esc_html__( 'E-post', 'text-domän' )
Ytterligare information finns här: Flerspråkighet för WordPress teman (eng) och Flerspråkighet för insticksprogram (eng)
Om du har några frågor är du välkommen att använda kommentarsfunktionen längst ned på denna sida.


0 kommentarer