{"id":2942,"date":"2023-03-21T13:59:01","date_gmt":"2023-03-21T12:59:01","guid":{"rendered":"https:\/\/www.saskialund.de\/?p=2942"},"modified":"2023-11-21T12:24:38","modified_gmt":"2023-11-21T11:24:38","slug":"escribir-funciones-php-traducibles-para-wordpress","status":"publish","type":"post","link":"https:\/\/isla-stud.io\/es\/ratgeber\/uebersetzbare-php-funktionen-fuer-wordpress-schreiben\/","title":{"rendered":"Escribir funciones PHP traducibles para WordPress"},"content":{"rendered":"<p>Extracto del <a href=\"https:\/\/developer.wordpress.org\/apis\/security\/escaping\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Manual del desarrollador de WordPress<\/a>:<\/p>\n\n\n\n<p>En <em>Salida de escape <\/em>es la protecci\u00f3n de los datos de salida mediante la eliminaci\u00f3n de datos\/caracteres no deseados, como etiquetas HTML o de script incorrectas. Este mecanismo ayuda a garantizar que los datos est\u00e1n protegidos para el usuario final antes de la renderizaci\u00f3n.<\/p>\n\n\n\n<p>WordPress contiene numerosas funciones de ayuda que puede utilizar para las situaciones m\u00e1s comunes.<\/p>\n\n\n\n<p>Preste mucha atenci\u00f3n a lo que hace cada funci\u00f3n, ya que algunas eliminan HTML mientras que otras lo permiten. Debe utilizar la funci\u00f3n m\u00e1s apropiada para el contenido y el contexto que desea mostrar. La funci\u00f3n escape debe usarse siempre durante la salida (php echo), no antes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resumen de las funciones de escape<\/h2>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_attr()<\/code><\/pre>\n\n\n\n<p>Se utiliza para todo lo dem\u00e1s que se emite en el atributo de un elemento HTML. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_html()<\/code><\/pre>\n\n\n\n<p>Se utiliza siempre que un elemento HTML incluye una secci\u00f3n con datos que se muestran (elimina html).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_js()<\/code><\/pre>\n\n\n\n<p>Se utiliza para javascript en l\u00ednea.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_textarea()<\/code><\/pre>\n\n\n\n<p> Para codificar texto para su uso en un elemento textarea.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_url()<\/code><\/pre>\n\n\n\n<p> Se utiliza para todas las URL, incluidas las de los atributos src y href de un elemento HTML.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">esc_url_raw()<\/code><\/pre>\n\n\n\n<p>Se utiliza cuando se almacena una URL en la base de datos o en otros casos en los que se requieren URL sin codificar.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">wp_kses()<\/code><\/pre>\n\n\n\n<p>Utilizar para todos los elementos HTML no fiables (texto de entrada, texto de comentario, etc.)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">wp_kses_post()<\/code><\/pre>\n\n\n\n<p>Versi\u00f3n alternativa de wp_kses(), que permite autom\u00e1ticamente todo el contenido HTML permitido en las entradas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"php\" class=\"language-php\">wp_kses_data()<\/code><\/pre>\n\n\n\n<p>Versi\u00f3n alternativa de wp_kses(), que s\u00f3lo permite el c\u00f3digo HTML permitido en los comentarios de las entradas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Garantizar el multiling\u00fcismo en la huida<\/h2>\n\n\n\n<p>Si la salida se realiza como en el siguiente ejemplo, nos aseguramos de que<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Las frases permanecen intactas (sin pausas).<\/li>\n\n\n\n<li>se garantiza una separaci\u00f3n correcta.<\/li>\n\n\n\n<li>la opci\u00f3n de organizar los enlaces de contacto y correo electr\u00f3nico (o algo similar) de forma diferente dentro de la frase traducida.<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code lang=\"php\" class=\"language-php\">\/\/ Ejemplo de url (podr&iacute;a proceder de una entrada insegura del usuario a trav&eacute;s de un formulario, por ejemplo).\n$contact_url = &#039;https:\/\/www.example.com\/contact\/&#039;;\n\/\/ escape de $contact_url\n$contact_url = esc_url( $contact_url );\n\n\/\/ Direcci&oacute;n de correo electr&oacute;nico de ejemplo (podr&iacute;a proceder de una entrada insegura del usuario a trav&eacute;s de un formulario, por ejemplo).\n$contact_email = &#039;info@mydomain.com&#039;;\n\/\/ escaping, sanitizing &amp;amp; hiding of $contact_email.\n\/\/ S&iacute;, debe sanear y ocultar la direcci&oacute;n de correo electr&oacute;nico aunque utilice la funci&oacute;n antispambot().\n$contact_email = esc_url( sprintf( &#039;mailto:%s&#039;, antispambot( sanitise_email( $contact_email ) ) ), array( &#039;mailto&#039; ) );\n\nesc_html_e( &#039;Estimado hu&eacute;sped, no hemos podido encontrar ning&uacute;n detalle sobre su solicitud.&#039;, &#039;text-domain&#039; );\necho &quot;&lt;br&gt;&lt;br&gt;&quot;;\n\nprintf(\n    esc_html__( &#039;P&oacute;ngase en contacto con nosotros a trav&eacute;s de nuestro %1$s o mediante %2$s.&#039;, &#039;text-domain&#039; ),\n    sprintf(\n        &#039;&lt;a href=&quot;\/es\/s-2\/&quot;&gt;%s&lt;\/a&gt;&#039;,\n        $contact_url,\n        esc_html__(&#039;P&aacute;gina de contacto&#039;, &#039;text-domain&#039; )\n        ),\n    sprintf(\n        &#039;&lt;a href=&quot;\/es\/s-2\/&quot;&gt;%s&lt;\/a&gt;&#039;,\n        $contact_email,\n        esc_html__( &#039;Correo electr&oacute;nico&#039;, &#039;text-domain&#039; )\n        )\n    );<\/code><\/pre>\n\n\n\n<p>De este modo, el traductor dispone de dos frases completas y dos palabras individuales para traducir. Por tanto, un traductor s\u00f3lo tiene que ocuparse de las siguientes l\u00edneas sencillas (mientras que el CODE se ocupa del resto):<\/p>\n\n\n\n<pre class=\"wp-block-code\" style=\"font-size:14px\"><code lang=\"php\" class=\"language-php\">esc_html_e( 'Estimado cliente, no hemos podido encontrar ning\u00fan detalle sobre su solicitud.', 'text-domain' );\n\/\/ ...\nesc_html__( 'Por favor, p\u00f3ngase en contacto con nosotros a trav\u00e9s de nuestro %1$s o v\u00eda %2$s', 'text-domain' )\n\/\/ ...\nesc_html__( 'P\u00e1gina de contacto', 'text-domain' )\n\/\/ ...\nesc_html__( 'Correo electr\u00f3nico', 'text-domain' )<\/code><\/pre>\n\n\n\n<p class=\"has-small-font-size\">Para m\u00e1s informaci\u00f3n, pulse aqu\u00ed: <a href=\"https:\/\/developer.wordpress.org\/themes\/functionality\/internationalization\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Multiling\u00fcismo para temas de WordPress (eng)<\/a> y <a href=\"https:\/\/developer.wordpress.org\/plugins\/internationalization\/how-to-internationalize-your-plugin\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Multiling\u00fcismo para plugins (eng)<\/a><\/p>\n\n\n\n<p>Si tiene alguna pregunta, no dude en utilizar la funci\u00f3n de comentarios al final de esta p\u00e1gina.<\/p>","protected":false},"excerpt":{"rendered":"<p>Aqu\u00ed encontrar\u00e1s \u00fatiles fragmentos de PHP para traducir textos en WordPress y realizar temas y plugins multiling\u00fces para WordPress.<\/p>","protected":false},"author":1,"featured_media":2956,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[13,644,20],"tags":[],"dipi_cpt_category":[],"class_list":["post-2942","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ratgeber","category-code-snippets","category-tipps-tricks"],"acf":[],"_links":{"self":[{"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/posts\/2942","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/comments?post=2942"}],"version-history":[{"count":2,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/posts\/2942\/revisions"}],"predecessor-version":[{"id":3109,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/posts\/2942\/revisions\/3109"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/media\/2956"}],"wp:attachment":[{"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/media?parent=2942"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/categories?post=2942"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/tags?post=2942"},{"taxonomy":"dipi_cpt_category","embeddable":true,"href":"https:\/\/isla-stud.io\/es\/wp-json\/wp\/v2\/dipi_cpt_category?post=2942"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}