Como ya vimos en otro post anterior cómo podíamos incluir nuestros scripts y nuestras hojas de estilo de forma externa a las hojas de WordPress; ahora vamos a introducir código PHP de forma externa con las funciones require() o include en WordPress. Esto nos permitirá cargar en la página un montón de funciones diseñadas por nosotros, sobretodo las relacionadas con acceso a bases de datos, escritura de archivos,…   en fin, todo lo que no esté en el lado del servidor.

Es tan sencillo como poner dentro la dirección del directorio hacia el que nos dirigimos. Pero aún podremos encontrarnos con alguna sorpresa.

La mejor manera es direccionar a través de la función get_template_directory_uri() como se hace en muchos casos para introducirse en la carpeta del template que utilizamos.

Pero sorpresa!!! Nos encontramos con el siguiente error.

Error require

 

Y sin saber muy bien por qué, sorprendentemente encontramos otra funcion muy parecida a la anterior que no nos da problemas y con ella podemos hacer los includes o requires que nos de la gana. La función es  get_template_directory() a secas y nos deberá de quedar algo así.


require_once(get_template_directory().'/DB_access/db_functions.php');

echo (get_template_directory_uri());
echo (get_template_directory());

Esto es un ejemplo. Si queréis probar la diferencia entre una y otra en el servidor podemos hacer un ‘echo’ para observar las diferencias que proporcionan estas funciones. Con URI nos da la dirección y además una serie de números y subcarpetas inexistentes que aún no tengo ni idea de lo que significan, pero ya es la razón por la que un “require” con esta función no funciona.

http://www.wordpressdeprueba.com/wp-content/themes/formation/homepages/35/d525764501/

Con la segunda accedemos a la carpeta, no a la dirección web. Esta es la carpeta que solo puede acceder el servidor y no desde el navegador. Con esta segunda opción nuestro “require” o “include” funcionará y de esa manera podremos extender el uso de nuestro wordpress.

htdocs/WordPress/wp-content/themes/formation