¿Hay alguna diferencia entre the_title() y echo get_the_title()?

16 dic 2015, 12:11:08
Vistas: 20.7K
Votos: 10

Solo una pequeña pregunta. ¿Hay alguna diferencia en usar

<?php the_title() ?>

o

<?= get_the_title() ?>

Sí, sé que algunos pueden considerar el uso de la etiqueta corta de echo una mala práctica, solo quiero saber si hay alguna diferencia en el resultado de llamar a estas dos funciones.

2
Comentarios

¿Por qué es mala práctica usar la etiqueta corta de echo?

Joel M Joel M
29 jun 2022 18:38:05

La etiqueta corta de echo es una excelente práctica ya que elimina el desorden superfluo de php end echo

th00ht th00ht
1 dic 2022 12:43:26
Todas las respuestas a la pregunta 2
2
12

Los dos no son 100% idénticos, aunque son muy similares.

  1. the_title() mostrará (echo) el contenido por defecto, pero se puede usar el tercer parámetro para cambiar ese comportamiento.
  2. the_title() antepone el argumento opcional $before y añade el argumento opcional $after. Si el tema o algún plugin usa estos argumentos, la salida de ambas funciones será diferente.

Si echas un vistazo al código fuente, las diferencias son fáciles de ver:

32  /**
33   * Muestra o recupera el título actual de la entrada con contenido opcional.
34   *
35   * @since 0.71
36   *
37   * @param string $before Opcional. Contenido para anteponer al título.
38   * @param string $after  Opcional. Contenido para añadir al título.
39   * @param bool   $echo   Opcional, por defecto true. Si se debe mostrar o devolver.
40   * @return string|void String si el parámetro $echo es false.
41   */
42  function the_title( $before = '', $after = '', $echo = true ) {
43          $title = get_the_title();
44  
45          if ( strlen($title) == 0 )
46                  return;
47  
48          $title = $before . $title . $after;
49  
50          if ( $echo )
51                  echo $title;
52          else
53                  return $title;
54  }

Puedes ver que the_title() obtiene los datos usando get_the_title() en su primera línea, por lo que en ese punto ambos son iguales. Pero the_title() luego realiza manipulaciones adicionales, potencialmente.

Lo mismo ocurre con otras funciones de "mostrar"/"no mostrar" como the_content() y get_the_content(). Aunque son similares, no son exactamente iguales.

16 dic 2015 17:14:57
Comentarios

Así que, técnicamente llamar a "the_title('', '', false);" sería lo mismo que llamar a "get_the_title();". No es que quiera usarlo así. :)

Boykodev Boykodev
16 dic 2015 19:10:40

Sí, eso parece correcto.

s_ha_dum s_ha_dum
16 dic 2015 19:15:12
3
the_title()

mostrará el título automáticamente y solo puede usarse dentro de 'the loop' https://codex.wordpress.org/Function_Reference/the_title

get_the_title()

sin el echo o <?= simplemente devuelve el título. Por lo que puedes almacenarlo en una variable y manipularlo si lo necesitas https://codex.wordpress.org/Function_Reference/get_the_title

16 dic 2015 12:14:57
Comentarios

¿Entonces echo get_the_title() tiene exactamente el mismo resultado que llamar a the_title()?

Boykodev Boykodev
16 dic 2015 12:17:29

Sí, lo tiene. Por favor revisa los enlaces anteriores para más información de la documentación

TommyBs TommyBs
16 dic 2015 12:18:13

Eso es lo que pensaba, solo tenía algunas dudas que quería aclarar.

Boykodev Boykodev
16 dic 2015 12:20:01