WordPress : Cómo obtener el directorio y URL del tema
Referencias al template
get_template_directory_uri()
Referencia: get_template_directory_uri(). Aplica el filtro template_directory_uri.
Esta función devuelve la URL del directorio del template asociado al tema activo. La URL devuelta no lleva barra diagonal al final y utiliza protocolo HTTP o HTTPS si es necesario.
Por ejemplo, si el tema activo es Twenty Twenty como si es un tema hijo de Twenty Twenty, y hacemos:
echo get_template_directory_uri();
Obtendremos:
http://midominio.com/wp-content/themes/twentytwenty
Es útil cuándo es necesario obtener la URL del tema de referencia, tanto si es el activo como si es el tema padre. Por ejemplo, si tenemos un child theme y queremos añadir un script que está en el tema padre:
add_action( 'wp_enqueue_scripts', function() {
wp_enqueue_script(
'mis_script',
get_template_directory_uri() . '/js/mis_script.js',
array('jquery')
);
} );
get_template_directory()
Referencia: get_template_directory(). Aplica el filtro template_directory.
Devuelve la ruta absoluta al directorio del tema actual. Esto puede resultar útil para acceder a archivos dentro del directorio del tema, como hojas de estilo, archivos JavaScript o partes de plantillas. Permite a los desarrolladores hacer referencia e incluir fácilmente archivos desde el directorio de temas sin codificar la ruta, lo que hace que el código sea más flexible y portátil.
Cómo incluir un archivo del directorio de plantillas
Utilice la función get_template_directory para incluir un archivo del directorio del tema actual.
<?php
$file_path = get_template_directory() . '/includes/custom-functions.php';
if (file_exists($file_path)) {
include($file_path);
}
?>
Cómo poner en cola un script desde el directorio de plantillas
Utilice la get_template_directoryfunción para poner en cola un script desde el directorio del tema actual.
function custom_scripts() {
wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom-script.js', array('jquery'), '1.0', true);
}
add_action('wp_enqueue_scripts', 'custom_scripts');
Imprimimos el valor de get_template_directory() en un servidor local
<?php echo get_template_directory();exit; ?>
//Valor devuelto pobado en servidor local
D:\Todo Web\Proyectos Web\desarrollo-wordpress-gamatel.com/
wp-content/themes/Mi_Tema_Actual
Es similar a get_template_directory_uri()
pero devuelve la ruta en el sistema de archivos del servidor en lugar de la URL. Por ejemplo, si el tema activo es Twenty Twenty o un tema hijo, obtendríamos algo así:
/home/user/public_html/wordpress/wp-content/themes/twentytwenty
Conclusion
En conclusión, la función get_template_directory
es una herramienta crucial para los desarrolladores de WordPress que buscan acceder a la ruta del directorio del tema actual. Al utilizar esta función, los desarrolladores pueden recuperar fácilmente la ruta al directorio de su tema y acceder a archivos y recursos importantes. Esta función proporciona una forma sencilla y eficiente de garantizar que se acceda correctamente a los archivos de temas y es una parte esencial del desarrollo de temas en WordPress. Con su sintaxis sencilla y potentes capacidades, get_template_directory
es un activo valioso para los desarrolladores que trabajan con temas de WordPress.
Referencia : https://pexetothemes.com/wordpress-functions/get_template_directory/
Referencias al stylesheet
get_stylesheet_directory_uri()
Referencia: get_stylesheet_directory_uri(). Aplica el filtro stylesheet_directory_uri.
Es similar a get_template_directory_uri()
, se obtiene la URL que apunta al directorio del tema activo con la diferencia de que si estamos en un tema hijo, get_stylesheet_directory_uri()
devuelve la URL hacia el tema hijo y no hacia el tema padre como hacia get_template_directory_uri()
.
Por ejemplo, si el tema activo es Twenty Twenty y hacemos:
echo get_stylesheet_directory_uri();
Obtendremos:
http://midominio.com/wp-content/themes/twentytwenty
Pero si el tema activo es un tema hijo de Twenty Twenty, el resultado ya es diferente. Por ejemplo, si el tema hijo está en el directorio themes/mitema
, obtendremos:
http://misitio.com/wp-content/themes/mitema
get_stylesheet_directory()
Igual a get_stylesheet_directory_uri()
pero devuelve el path físico en lugar de la URL.
Referencia: get_stylesheet_directory(). Aplica el filtro stylesheet_directory.
get_stylesheet_uri()
Referencia: get_stylesheet_uri(). Utiliza el filtro stylesheet_uri.
Esta función devuelve la URL del archivo style.css del tema activo.
echo get_stylesheet_uri();
// Sería algo equivalente a
// echo get_stylesheet_directory_uri() . '/style.css';
get_theme_file_uri()
Referencia: get_theme_file_uri(). Utiliza el filtro theme_file_uri
Con esta función se obtiene la URL de un archivo localizado en el theme. Si el tema activo es un child theme, primero se busca en el child theme y luego en el padre. Utilizar esta función para cargar CSS y JavaScripts en los temas permite que puedan ser sobreescritos fácilmente en temas hijos; basta copiar los archivos del tema padre al tema hijo manteniendo la misma ruta relativa.
echo get_theme_file_uri( '/assets/css/colors-dark.css' );
get_locale_stylesheet_uri()
Referencia: get_locale_stylesheet_uri(). Utiliza el filtro locale_stylesheet_uri.
Esta función devuelve la URL del archivo CSS especifico por idioma. En un tema para WordPress puedes tener el stylesheet general style.css y otros adicionales específicos por idioma. Estos archivos han de estar en el directorio principal del tema y su nombre ha de ser el código de idioma; por ejemplo, es_ES.css
.
Además, si la dirección del texto en el idioma activo es right-to-left se buscará el archivo rtl.css
; si es left-to-right se buscará el archivo ltr.css
. De esta forma se estandariza la carga de hojas de estilo específicas según las características del idioma utilizado; muy útil en webs multiidioma.
Referencias al directorio de instalación de temas
Si nos interesa conocer la URL o ruta al directorio dónde están instalados los temas (directorio raíz del tema) podemos utilizar las siguientes funciones:
get_theme_root_uri()
Referencia: get_theme_root_uri(). Utiliza el filtro theme_root_uri.
Esta función devuelve la URL del directorio dónde está instalado el tema activo. Si en una instalación WordPress estándar hacemos:
echo get_theme_root_uri();
Obtendríamos algo así:
http://misitio.com/wp-content/themes
Si queremos obtener la URL al directorio raíz de otro tema diferente al tema activo, podemos pasar el nombre del tema. Por ejemplo:
echo get_theme_root_uri( 'otro_tema' );
Cómo en la mayoría de instalaciones de WordPress todos los temas están bajo el mismo directorio raíz, obtendríamos el mismo resultado que antes. Este uso sería útil en instalaciones dónde puede haber varios directorios de instalación de temas.
get_theme_root()
Referencia: get_theme_root(). Utiliza el filtro theme_root.
Esta función devuelve la ruta en el sistema de archivos del servidor del directorio de temas. Si en una instalación WordPress estándar hacemos:
echo get_theme_root();
Obtendríamos algo así:
/home/user/public_html/wp-content/themes
Al igual que con get_theme_root_uri()
, si queremos calcular el path del directorio raíz de un tema específico, podemos pasar su nombre a la función. Útil en instalaciones en las que no todos los temas comparten el mismo directorio raíz:
echo get_theme_root( 'otro-tema' );
get_theme_roots()
Referencia: get_theme_roots().
Esta función devuelve el nombre (no la ruta) del directorio raíz de temas. En una instalación normal de WrodPress en la que todos los temas comparten el mismo directorio raíz, si hacemos:
echo get_theme_roots();
Obtendremos:
/themes
Pero si hay temas instalados en diferentes directorios, es decir, si no todos los temas comparten el mismo directorio raíz, get_theme_roots()
devuelve un array con cada tema y su directorio raíz correspondiente.