Referencias a Directorios de Plugins y Temas en WordPress

PHPWordPress

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.

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()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.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

1 comentario en “Referencias a Directorios de Plugins y Temas en WordPress

  1. ¡¡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!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”