get_template_directory() vs bloginfo('template_directory') vs TEMPLATEPATH
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()?
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 yget_template_directory_uri()la URL. Por lo tanto, el autor no es consistente:get_bloginfo( 'template_directory' )yget_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().
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
¡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