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!

Responder a CubeNode Cancelar la 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.”