---
title: Escribir funciones PHP traducibles para WordPress - isla Studio
url: https://isla-stud.io/ratgeber/uebersetzbare-php-funktionen-fuer-wordpress-schreiben/
fecha: 2023-03-21
---

# Escribir funciones PHP traducibles para WordPress

Extracto del manual para desarrolladores de WordPress:



Escapar la salida es el proceso de asegurar los datos de salida mediante la eliminación de datos / caracteres no deseados, como HTML incorrecto o etiquetas de script. Este mecanismo ayuda a garantizar que los datos están protegidos para el usuario final antes de la renderización.



WordPress contiene numerosas funciones de ayuda que puede utilizar para los escenarios más comunes.



Preste mucha atención a lo que hace cada función, ya que algunas eliminan el HTML mientras que otras lo permiten. Debe usar la función más apropiada para el contenido y el contexto que desea mostrar. La función escape debe usarse siempre durante la salida (php echo), no antes.



Resumen de las funciones de escape







esc_attr()



Se utiliza para todo lo demás que sale en el atributo de un elemento HTML.



esc_html()



Se utiliza siempre que un elemento HTML incluye una sección con datos que se muestran (elimina html).



esc_js()



Se utiliza para javascript en línea.



esc_textarea()



 Para codificar texto para su uso en un elemento textarea.



esc_url()



 Se utiliza para todas las URL, incluidas las de los atributos src y href de un elemento HTML.



esc_url_raw()



Se utiliza cuando se guarda una URL en la base de datos o en otros casos en los que se requieren URL no codificadas.



wp_kses()



Usar para todos los elementos HTML no confiables (texto de post, texto de comentario, etc.)



wp_kses_post()



Versión alternativa de wp_kses(), que permite automáticamente todo el contenido HTML permitido en las entradas.



wp_kses_datos()



Versión alternativa de wp_kses(), que sólo permite el código HTML permitido en los comentarios de las entradas.



Garantizar el multilingüismo al escapar



Si la salida se realiza como en el siguiente ejemplo, nos aseguramos de que




Se conservan las frases (sin saltos de frase).



Se garantiza una separación correcta.



es posible disponer los enlaces de contacto y correo electrónico (o algo similar) de forma diferente dentro de la frase traducida.




// Ejemplo de url (podría proceder de una entrada insegura del usuario a través de un formulario, por ejemplo).
$contact_url = 'https://www.example.com/contact/';
// escape de $contact_url
$contact_url = esc_url( $contact_url );

// Dirección de correo electrónico de ejemplo (podría proceder de una entrada insegura del usuario a través de un formulario, por ejemplo).
$contact_email = 'info@mydomain.com';
// escaping, sanitizing &amp; hiding of $contact_email.
// Sí, debe sanear y ocultar la dirección de correo electrónico aunque utilice la función antispambot().
$contact_email = esc_url( sprintf( 'mailto:%s', antispambot( sanitise_email( $contact_email ) ) ), array( 'mailto' ) );

esc_html_e( 'Estimado huésped, no hemos podido encontrar ningún detalle sobre su solicitud.', '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.