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.
es decir, tomar de cada plugin funciones, segun el ejemplo hacer llamados o incluir:
1
plugins_url( ‘/primerplugin/affiliatewp/register.php’);
plugins_url( ‘/segundoplugin/givewp/donar.php’);
plugins_url( ‘/tercerplugin/pagarcripto/pagar.php’);
y con esto hacer un codigo que los integre.
Hola. como estas? Tengo una pregunta a raiz de una idea que tengo de enlazar las funcionalidades de tres o mas plugin para lograr un objetivo especifico. Mi idea es poder integrar tres plugin que son: Registro de afiliados con affiliatewp. sistema de donaciones con givewp y plugin de pagos de criptomonedas de criptopay. LOs tres plugin estan instalados y funcionando correctamente cada uno por su lado. Mi idea es crear un codigo que haga lo siguiente, tome de el plugin de afiliado las funciones que permiten abrir un nuevo registro con el seguimiento de quien invito a el nuevo usuario, luego de esto, ese nuevo usuario debe realizar unas donaciones, 5 en total, y los tomara de el plugin affiliatewp y luego de esto ir haciendo uno a uno cada donacion atraves de el plugin de pagos de criptomonedas. Como saben ustedes y lo que he podido deducir cada plugin trabaja independuente, pero puedo lograr tomar las funciones de cada plugin y mezclarlas en un nuevo codigo que haga llamados a estas funciones o plugin completos ara lograr el objetivo utilizando estas rutas que estan en este artculo o post? y podria funcionarme? espero sea bien entendido mi propuesto.
Bomito embrollo, a ver, tu quieres modificar comportamiento de plugins, para eso tienes que ver la estructura de la BBDD, las tablas que crean y con que campos, tendrías que añadir campos nuevos y hacer que cuando ocurran ciertos eventos se modifique la acción del plugin.
Esto tiene el problema en que si se actualiza el plugin, cosa que se debe de hacer todo el desarrollo y puede que los datos se pierdan.
La solución sería convertirlos en plugins propios pero dejarían de tener soporte, con lo que ello implica.
Cuando yo me encuentro con cosas de este tipo en la toma de requerimientos del proyecto analizo si es mejor hacerlo en código o en WordPress, a veces es sorprendente descubrir que ante ciertos desarrollos es mejor un desarrollo a parte.
Aún así tienes varios caminos; reprogramar los plugins, usar la APIrest de WordPress, o reiniciar el proyecto.