Cuando programamos Plugins o creamos Temas para WordPress es común necesitar referencias a varios archivos y directorios tanto de WordPress como del Tema o del Plugin que estamos creando.
Contenidos
WordPress nos ofrece varias funciones para determinar en dónde está un directorio determinado. Es mucho mejor utilizar las funciones que vamos a ver en lugar de escribir los directorios a mano, ya sea el directorio de nuestro tema o el de cualquier elemento que resida en el directorio wp-content, ya que es posible que este directorio tenga otro nombre o resida en otra parte. Por ejemplo, nunca deberemos asumir que el directorio de los Plugins será wp-content/plugins o que el de los temas será wp-content/themes. Lo mismo ocurrirá con el directorio de los archivos que subimos a WordPress, wp-content/uploads. También vamos a ver cómo acceder a los directorioos mediante URLs para que podemos acceder a loar archivos desde fuera del servidor.
Antes de comenzar, es importante recordar que cada vez que en PHP utilicemos la constante _FILE_ para obtener la ruta del archivo actual, obtendremos una ruta errónea si los archivos se enlazan desde otro lado mediante un symlink de Linux.
Uso habitual
Si tu Tema o tu Plugin incluye archivos CSS, archivos JavaScript o cualquier otro archivo, seguramente necesitarás la URL a estos archivos para añadirlos en la página cuando ésta se cargue. Para ello, debes usar la función plugins_url(). Vamos a ver un ejemplo:
plugins_url( 'mi_archivo.css', __FILE__ );
Ésto nos devolverá la URL completa al archivo mi_archivo.css, que por ejemplo podría ser algo así como example.com/wp-content/plugins/mi_plugin/mi_archivo.css.
En caso de que no lo sepas, para cargar archivos CSS o JavaScript en tu página deberás usar las funciones swp_enqueue_style() y wp_enqueue_script() respectivamente. A estas funciones deberás pasarles una URL. También podemos utilizar la función get_template_directory_uri() para obtener la URL del tema actual. Vamos a ver algunos ejemplos:
Obtener el archivo /css/estilos.css que está en nuestro Tema:
wp_enqueue_style( 'archivo-css', get_template_directory_uri().'/css/estilos.css' );
Para obtener la el archivos CSS mi_archivo.css que está en nuestro Plugin actual, utilizamos al constante _FILE_ para referenciar el directorio del archivo que estamos editando. Es decir, estamos diciendo a WordPress: dame el archivo CSS que está en la dirección del Plugin al que corresponde el archivo que estoy editando.
wp_enqueue_style(plugins_url( 'mi_archivo.css', __FILE__ ))
En este otro ejemplo sencillamente obtenemos la URL completa al archivo mi_script.js, que está en el mismo directorio del Plugin en el que está archivo PHP que estoy editando.
plugins_url( 'mi_script.js', __FILE__ );
El resultado sería algo así como http://www.ejemplocom/wp-content/plugins/mi_plugin/mi_script.js.
Funciones que nos ofrece WordPress
Vamos a ver las funciones para obtener directorio y las direcciones URL de Temas y Plugins que están disponibles en WordPress
Directorios y URLs de WordPress
- admin_url()
- site_url()
- content_url()
- includes_url()
- wp_upload_dir()
Página de inicio
- home_url()
- get_home_path()
Temas
- get_template_directory_uri()
- get_stylesheet_directory_uri()
- get_stylesheet_directory()
- get_template_directory()
- get_stylesheet_uri()
- get_theme_root_uri()
- get_theme_root()
- get_theme_roots()
Plugins
- plugins_url()
- plugin_dir_url()
- plugin_dir_path()
- plugin_basename()
Páginas Multisitio de WordPress
Estas funciones se utilizan cuando en una instalación de WordPress tenemos más de una página web.
- get_home_url()
- get_site_url()
- get_admin_url()
- network_site_url()
- network_home_url()
- network_admin_url()
Algunas constantes que nos ofrece WordPress
WordPress también nos da la opción de utilizar diferentes constantes para determinar la ruta a los directorios de contenidos y al directorio en el que están los Plugins, que habitualmente están en el directorio /wp-content y /wp-content/plugins/. Estos directorio no deben ser utilizados dentro de Plugins y Ttemas debido a que pueden tener un nombre distinto dependiendo de las opciones de cada usuario, pero aquí los tenéis de todos modos.
URL completa al directoriode contenidos (wp-content):
- WP_CONTENT_URL
Ruta del sistema del directorio de contenidos (wp-content):
- WP_CONTENT_DIR
URL completa al directorio de los Plugins (wp-content/plugins):
- WP_PLUGIN_URL
Ruta completa al directorio de los Plugins (wp-content/plugins):
- WP_PLUGIN_DIR
Directorio en el que se suben los archivos a WordPress (/wp-content/uploads):
- UPLOADS
Ésto es todo, podéis encontrar más información acerca de cada función individual en la página oficial de WordPress.
1 comentarios en “Referencias a Directorios de Plugins y Temas en WordPress”
¡¡Viva!! Gracias por esta guía, me ha funcionado a la perfección ;) Es muy práctica y fácil de seguir, que es mucho decir con este tipo de cosas. ¡Enhorabuena por el blog!
Entra con tu correo para comentar.