Seleccionar página

Escribir funciones PHP traducibles para WordPress

escaping, sanitizing and text-domains > ¡Programación de temas y plugins multilingües!

Aquí encontrarás útiles fragmentos de PHP para traducir textos en WordPress y realizar temas y plugins multilingües para WordPress.

Este artículo se actualizó por última vez el 21 noviembre 2023.

información
Escrito por Saskia Teichmann
el 21 de marzo de 2023
Envío de
Opinión del usuario
0 (0 vota)
Comentarios 0 (0 reseñas)
Fragmentos de código - PHP - WordPress

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

  1. Las frases permanecen intactas (sin pausas).
  2. se garantiza una separación correcta.
  3. 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.

<span class="castledown-font">Saskia Teichmann</span>

Saskia Teichmann

Desarrollador web WordPress full stack de Alemania al que le gusta crear sitios web bonitos y proyectos web sofisticados.

En su tiempo libre, Saskia disfruta haciendo senderismo con su familia por la sierra de Tramuntana, en Mallorca, paseando por los jardines de Herrenhausen, en Hannover, o nadando en el mar.

Enviar una solicitud de proyectoServir café

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Envío de