get_template_directory() vs bloginfo('template_directory') vs TEMPLATEPATH

15 nov 2012, 19:33:08
Vistas: 29.5K
Votos: 16

Estaba leyendo este artículo: Errores comunes en el desarrollo de WordPress y cómo solucionarlos, y en él, el autor dice:

Obtener la ubicación del tema: Si estás usando TEMPLATEPATH o bloginfo( 'template_directory'). ¡Detente! Deberías estar usando la muy útil función get_template_directory() como se muestra en mis ejemplos anteriores.

Pero no lo explica en detalle. ¿Qué tiene de malo usar bloginfo()?

0
Todas las respuestas a la pregunta 1
3
18

Para resumir: get_bloginfo( 'template_directory' ) y get_bloginfo( 'template_url' ) simplemente devuelven get_template_directory_uri().

Por lo tanto, puedes acortar esa segunda llamada simplemente refiriéndote directamente a la última etiqueta de plantilla.

Consultar la fuente para get_bloginfo().

Algunos otros:

  • 'url' => home_url()
  • 'wpurl' => site_url()
  • 'stylesheet_url' => get_stylesheet_uri()
  • 'stylesheet_directory' => get_stylesheet_directory_uri()
  • 'locale' => get_locale()

Editar

Nota también: TEMPLATEPATH y STYLESHEETPATH están programados para ser obsoletos, por lo que es mejor reemplazarlos ahora con get_template_directory() y get_stylesheet_directory(), respectivamente.

Editar 2

Respecto a este comentario

Justo lo que estaba a punto de decir :). Añadiría que get_template_directory() devuelve la ruta y get_template_directory_uri() la URL. Por lo tanto, el autor no es consistente: get_bloginfo( 'template_directory' ) y get_template_directory() ¡devuelven cosas diferentes!

Vuelve a consultar la fuente :)

case 'template_directory':
case 'template_url':
    $output = get_template_directory_uri();
    break;

Respecto a este comentario:

La única advertencia al desarrollar temas hijos es que necesitarás usar get_stylesheet_directory() explícitamente. Que alguien me corrija si estoy equivocado.

Cierto, pero siempre ha sido así. get_bloginfo() no devuelve nada relacionado con get_stylesheet_directory(). Solo devuelve get_stylesheet_uri() y get_stylesheet_directory_uri().

15 nov 2012 19:42:36
Comentarios

La única advertencia al desarrollar temas hijos es que necesitarás usar explícitamente get_stylesheet_directory(). Que alguien me corrija si estoy equivocado.

Steve Steve
15 nov 2012 19:47:20

¡Gracias! Solo me pregunto por qué WP tiene tantas de estas funciones que solo llaman a otra función, que luego se supone que no debemos usar...

coopersita coopersita
15 nov 2012 21:07:12

En este caso, creo que la razón es simplemente mantener la compatibilidad con versiones anteriores de los parámetros de get_bloginfo().

Chip Bennett Chip Bennett
15 nov 2012 21:20:29