Extracto del Manual del desarrollador de WordPress:
En Salida de escape es la protección de los datos de salida mediante la eliminación de datos/caracteres no deseados, como etiquetas HTML o de script incorrectas. 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 las situaciones más comunes.
Preste mucha atención a lo que hace cada función, ya que algunas eliminan HTML mientras que otras lo permiten. Debe utilizar 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 se emite 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 almacena una URL en la base de datos o en otros casos en los que se requieren URL sin codificar.
wp_kses()
Utilizar para todos los elementos HTML no fiables (texto de entrada, 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_data()
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 en la huida
Si la salida se realiza como en el siguiente ejemplo, nos aseguramos de que
- Las frases permanecen intactas (sin pausas).
- se garantiza una separación correcta.
- la opción de organizar 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 & 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/">%s</a>',
$contact_url,
esc_html__('Página de contacto', 'text-domain' )
),
sprintf(
'<a href="/es/%s/">%s</a>',
$contact_email,
esc_html__( 'Correo electrónico', 'text-domain' )
)
);
De este modo, el traductor dispone de 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 CODE se ocupa del resto):
esc_html_e( 'Estimado cliente, 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' )
Para más información, pulse 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.
0 comentarios