Advertisement
  1. Code
  2. Cheat Sheets

Los estándares de código de WordPress: comillas simples y comillas dobles

Scroll to top
Read Time: 7 min
This post is part of a series called The WordPress Coding Standards.
WordPress Coding Standards: Naming Conventions & Function Arguments
The WordPress Coding Standards: Indentation, Space Usage, and Trailing Spaces

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

En esta serie, estamos echando un vistazo a los estándares de código PHP en WordPress para tener una comprensión más profunda sobre cómo se debería escribir código de calidad en WordPress.

Por supuesto, todo esto está documentado en WordPress Coding Standards (los estándares de código de WordPress) y es un sitio que todos los desarrolladores de WordPress deberían tener marcado como referencia y a mano cuando esté trabajando en un tema, un plugin o una aplicación; sin embargo, si estás empezando con el desarrollo en WordPress, es importante entender la lógica del porqué las convenciones son como son.

En este artículo, vamos a echar un vistazo al uso de las comillas simples y dobles, especialmente cuando estamos trabajando con cadenas.

Posiblemente este sea el artículo más compresible y breve de esta serie, pero cubre algunos importantes aspectos relaccionados con el trabajo con las comillas simples, las comillas dobles, y las cadenas en WordPress.


Cadenas en PHP y cadenas en WordPress

Antes de explicar realmente las cadenas y su relación con WordPress, es importante entender cómo el lenguaje PHP interpreta las cadenas cuando están acotadas por comillas simples o por comillas dobles.

Comillas simples en PHP

Primero, la más simple, más comprensible forma de definir una cadena en PHP consiste en envolverla con comillas simples (es decir, el caracter ' ).

Como sucede con la mayoría de los lenguajes de programación, existen formas de escapar caracteres de manera que seas capaz de escribir una cadena de forma literal, si quisieses escribir: "String's in PHP are easy," (las cadenas en PHP son fáciles) como cadena, podrías hacer lo siguiente:

'String\'s in PHP are easy.'

¿ves? La barra diagonal inversa le indicará a PHP que escriba la comilla simple en lugar de terminar la actual cadena.

La segunda cosa a observar es que si tienes una variable, esta no será reemplazada cuando esté entre comillas simples. Por ejemplo, imagina que tienes una variable denominada $name  y que contiene el valor “Envato”.

Más concretamente, en código, esto tendría el siguiente aspecto:

$name = 'Envato'

Si fueses a incrustar la variable $name en otra cadena, ‘Envato’ no sería reemplazado.

1
2
$name = 'Envato';
3
echo 'I\'m writing for $name. It\'s a lot of fun.';

Esto haría simplemento eco de lo siguiente : I’m writing for $name. It’s a lot of fun.

Aquí es donde las comillas dobles empiezan a ser útiles.

Comillas dobles en PHP

Extraído directamente del manual de PHP:

Si la cadena está acotada con comillas dobles (“), PHP interpretará más secuencias de escape para caracteres especiales.

Puedes leer más sobre los caracteres de escape y otra información relacionada en el manual de PHP, pero digamos que queremos volver a trabajar en algunas de las cadenas que hemos definido anteriormente.

Nuestro primer ejemplo, es decir, aquel con la comilla de escape simple, podría ser definido así ahora:

"String's in PHP are easy."

Nuestro segundo ejemplo podría ser llevado un paso más allá: no solo no se necesita ya la segunda secuencia de escape, sino que también la variable será evaluada:

1
2
$name = 'Envato';
3
echo "I'm writing for $name. It's a lot of fun.";

La segunda línea mostrará literalmente lo siguiente: I’m writing for Envato. It’s a lot of fun.

De modo que habiendo cubierto esto a modo de introducción, hablemos sobre las especificidades de las cadenas en WordPress. Lo cierto es que, si tienes una sólida comprensión de todo lo anterior, no hay mucho más que añadir a excepción de algunos casos aislados.

Las comillas simples en WordPress

Para mantener la consistencia con las convenciones de código de PHP, la regla general a seguir es usar siempre comillas simples para definir tus cadenas.

Dado que la mayoría del trabajo realizado en WordPress también incluye la escritura de código de marcado dentro de una cadena PHP, es mejor colocar esas cadenas entre comillas simples de manera que los atributos del elemento HTML puedan ser acotados entre comillas dobles.

Por ejemplo:

$html = '<a href="http://wordpress.org" target="_blank">WordPress</a>

Obviamente, lo anterior crea una experiencia de lectura mucho más clara que si colocásemos varios caracteres de escape para manejar las comillas dobles, las barras oblícuas, etc.

Si estás trabajando con código que necesita desplegarse en varias líneas o en el que estás creando distintos elementos algunos de los cuales son elementos hijos de otros elementos, siempre te recomiendo que indentes el código de manera que se lea de igual manera que se leería un documento HTML.

Por ejemplo:

1
2
$name = 'Tom McFarlin';
3
4
$html = '<div id="container">';
5
	$html .= '<span>' . $name . '</span>';
6
$html .= </div><!-- /#container -->';

Es importante advertir que esto no forma parte de los estándares de código de WordPress, esta convención es una que a mi simplemente me parece útil para mantener el código, sin embargo, recuerda que las cadenas entre comillas simples no evalúan el valor de una variable.

Por tanto, es importante darse cuenta de esto, en este caso, estamos usando concatenación de cadenas para incluir la definición de la variable.

Las comillas dobles en WordPress

Igual que con las comillas dobles en PHP, es importante advertir que existen ocasiones en las que es preferible usarlas, especialmente cuando necesitas evaluar una variable.

Yo estoy usando el ejemplo del anterior código, y lo adaptaríamos de la siguiente forma:

1
2
$name = 'Tom McFarlin';
3
4
$html = "<div id='container'>";
5
  $html .= "<span>$name</span>";
6
$html .= "</div><!-- /#container -->";

Observa que hemos sustituido todas las comillas simples por comillas dobles y que ya no tenemos que llevar a cabo ninguna cadena de concatenación con la variable $name, ya que esta será evaluada.

También es importante advertir que aunque con razón es más habitual ver comillas dobles aplicadas a atributos HTML, las comillas simples funcionan perfectamente también, especialmente en escenarios como este.


Pero existen excepciones

Cuando trabajes con cadenas y distintos lenguajes de programación, a saber HTML, puede ser un poco complicado en cuanto a cómo anidar tu código.

Por ejemplo, supongamos que estás utilizando PHP para escribir JavaScript, que es responsable de representar algo de HTML. En este escenario, vas a escribir un montón de comillas.

Aunque es posible simplemente alternar tus estilos de entrecomillado, esto no funcionará al 100% en todos los casos.

Incluso los estándares de código afirman lo siguiente:

Una excepción a esto es JavaScript, el cual en algunos casos requiere comillas dobles y en otros comillas simples.

Aunque en ocasiones podrías no ser capaz de hacer esto, esto refuerza la idea de que deberíamos intentar mantener cada lenguaje de programación en su propio estilo de archivo e incluirlos cuando y allí donde sean necesarios.


¿Existe algún problema de seguridad?

Sí, pero WordPress hace que sean extremadamente fáciles de gestionar, y aunque esto cae tecnicamente bajo la validación de datos, está directamente relacionado con lo que estamos discutiendo precisamente en este artículo.

El principal problema consiste en que hay ocasiones en las que podríamos escribir atributos HTML dinámicamente para nuestro código de marcado que tiene valores que no podemos anticipar. En casos como este, tenemos que ser capaces de escapar estos datos.

Afortunadamente, WordPress proporciona la función esc_attr. En pocas palabras, esta función tomará cualquier cadena entrante y codificará los caracteres para asegurarse de que se renderizan en el navegador de la forma adecuada.

Hablando en términos prácticos, lo usarías exactamente como se muestra en el Codex:

1
2
echo '<input type="text" name="fname" value="' . esc_attr( $_POST['fname'] ) . '">';

Para más información, asegúrate de consultar el artículo del Codex.


Conclusión

Por tanto, como regla general, deberías usar comillas simples a menos que vayas a evaluar una cadena o vayas a devolver un código HTML, JavaScript, e incluso CSS a quien lo esté invocando.

Tal y como declaran los estándares de código:

Practicamente nunca deberías tener que escapar comillas en una cadena, ya que simplemente puedes cambiar tu estilo de entrecomillado.

Así que mientras estés trabajando con cadenas en tu futuro trabajo, mantén estos principios en mente, te ayudarán a asegurarte de que tus cadenas son limpias, y tan fáciles de entender como sea posible dentro del contexto de tus proyectos basados en WordPress.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.