Plugins (V) Determinar rutas

Al crear plugins tendremos que hacer referencias a los archivos y carpetas de su instalación. Wordpres dispone de varias funciones para determinar rutas a los directorios wp-content y plugins así como a los directorios de sus plugins.

En esta entrada vamos a aprender a utilizar dichas rutas, su uso y como enlazar archivos ya sean locales o en URL.

Determinar rutas locales

Para determinar la ruta local a nuestro plugin se utiliza la función plugin_dir_path(), que extrae del nombre de archivo la ubicación física relativa al directorio de plugins.

echo plugin_dir_path( __FILE__ );

Se le pasa la contaste __FILE__ para devolver la ruta completa del directorio.

Determinar rutas de URL

Para determinar la URL completa a cualquier archivo del directorio del plugin se utiliza la funcion plugins_url()

Esta función nos lleva directamente al directorio de nuestros plugins por lo que podemos hacer cosas bastantes interesantes como por ejemplo:

echo '<img src="'.plugins_url( '/primerplugin/img/aprender.jpg').'">';

En este caso la imagen recoge el directorio de plugins, el primerplugin, el directorio img y el archivo aprender.jpg

A continuación veremos algunas de las ventajas que supone el uso de esta función:

  • admite el directorio de plugins
  • Detecta SL de forma automática
  • Admite multisite

Otras Rutas

Ademas del directorio de plugins, WordPress puede utilizar otras funciones para para determinar URLs importantes en el sistema, algunas de ellas son:

  • admin_url(): determina la URL de administración
  • site_url(): nos dice la URL del sitio local
  • home_url(): la URL principal del sitio
  • includes_url(): el directorio de archivos incluidos/subidos
  • content_url(): nos dice la URL del directorio wp-content
  • wp_upload_dir(): devuelve una matriz con información de ubicación del directorio de transferencias

Saber la forma correcta de acceder a los archivos de los plugins es fundamental para garantizar la maxima compatibilidad con todas las instalaciones de WP, independientemente de su grado de personalización.