---
title: Übersetzbare PHP Funktionen für WordPress schreiben — isla Studio
url: https://isla-stud.io/en/ratgeber/uebersetzbare-php-funktionen-fuer-wordpress-schreiben/
date: 2023-03-21
---

# Übersetzbare PHP Funktionen für WordPress schreiben

Auszug aus dem WordPress Entwickler-Handbuch:



Unter Escaping Output versteht man die Absicherung von Ausgabedaten, indem unerwünschte Daten / Zeichen, wie z. B. fehlerhafte HTML- oder Skript-Tags, entfernt werden. Dieser Mechanismus trägt dazu bei, dass die Daten vor dem Rendern für den Endbenutzer abgesichert werden.



WordPress enthält zahlreiche Hilfsfunktionen, die Sie für die gängigsten Szenarien einsetzen können.



Achten Sie genau darauf, was die einzelnen Funktionen tun, denn einige entfernen HTML, während andere es zulassen. Sie sollten die am besten geeignete Funktion für den Inhalt und den Kontext verwenden, den Sie ausgeben wollen. Die Escape-Funktion sollte immer während der Ausgabe (php echo) verwendet werden, nicht davor.



Escaping functions im Überblick







esc_attr()



Wird für alles andere verwendet, das im Attribut eines HTML-Elements ausgegeben wird. 



esc_html()



Wird immer dann verwendet, wenn ein HTML-Element einen Abschnitt mit Daten einschließt, der angezeigt wird (entfernt html).



esc_js()



Zu verwenden für Inline-Javascript.



esc_textarea()



 Zur Kodierung von Text für die Verwendung in einem Textarea-Element.



esc_url()



 Verwendung für alle URLs, einschließlich derer in den Attributen src und href eines HTML-Elements.



esc_url_raw()



Wird verwendet, wenn eine URL in der Datenbank gespeichert wird oder in anderen Fällen, in denen nicht kodierte URLs benötigt werden.



wp_kses()



Verwendung für alle nicht vertrauenswürdigen HTML-Elemente (Beitragstext, Kommentartext, usw.)



wp_kses_post()



Alternative Version von wp_kses(), die automatisch alle HTML-Inhalte zulässt, die in Beiträgen erlaubt sind.



wp_kses_data()



Alternative Version von wp_kses(), die nur den in Beitragskommentaren erlaubten HTML-Code zulässt.



Mehrsprachigkeit beim Escapen gewährleisten



Wird die Ausgabe wie im nachfolgenden Beispiel durchgeführt, stellen wir sicher, dass




Die Sätze erhalten bleiben (keine Satzumbrüche).



für eine korrekte Trennung gesorgt ist.



die Möglichkeit geboten ist, Kontakt- und E-Mail-Links (oder etwas Ähnliches) innerhalb des übersetzten Satzes unterschiedlich anzuordnen.




// Beispiel url (könnte z.B. von einer unsicheren Benutzereingabe über ein Formular gekommen sein.)
$contact_url = 'https://www.example.com/contact/';
// escaping $contact_url
$contact_url = esc_url( $contact_url );

// Beispiel E-Mail-Adresse (könnte z.B. von einer unsicheren Benutzereingabe über ein Formular gekommen sein.)
$contact_email = 'info@mydomain.com';
// escaping, sanitizing & verbergen von $contact_email.
// Ja, man sollte die E-Mail-Adress auch dann noch sanitize und escapen, wenn man die antispambot() function verwendet
$contact_email = esc_url( sprintf( 'mailto:%s', antispambot( sanitize_email( $contact_email ) ) ), array( 'mailto' ) );

esc_html_e( 'Dear guest, we were unable to find any details regarding your request.', 'text-domain' );
echo "<br><br>";

printf(
    esc_html__( 'Póngase en contacto con nosotros a través de nuestro %1$s o mediante %2$s.', 'text-domain' ),
    sprintf(
        '<a href="/es/s-2/">%s</a>',
        $contact_url,
        esc_html__('Página de contacto', 'text-domain' )
        ),
    sprintf(
        '<a href="/es/s-2/">%s</a>',
        $contact_email,
        esc_html__( 'Correo electrónico', 'text-domain' )
        )
    );



Esto da al traductor dos frases completas y dos palabras individuales para traducir. Por tanto, un traductor sólo tiene que ocuparse de las siguientes líneas sencillas (mientras que el CÓDIGO se ocupa del resto):



esc_html_e( 'Estimado huésped, no hemos podido encontrar ningún detalle sobre su solicitud.', 'text-domain' );
// ...
esc_html__( 'Por favor, póngase en contacto con nosotros a través de nuestro %1$s o vía %2$s', 'text-domain' )
// ...
esc_html__( 'Página de contacto', 'text-domain' )
// ...
esc_html__( 'Correo electrónico', 'text-domain' )



Encontrará más información aquí: Multilingüismo para temas de WordPress (eng) y Multilingüismo para plugins (eng)



Si tiene alguna pregunta, no dude en utilizar la función de comentarios al final de esta página.