En casi todos los tutoriales y artículos que explican cómo hacer algo con WordPress se habla del archivo ‘functions.php’. Quienes estamos familiarizados con este gestor de contenidos sabemos que es un archivo muy potente a la hora de desarrollar un tema para una web. Pero este control viene necesariamente acompañado de cierta responsabilidad. Un pequeño error en este archivo y podemos dejar completamente inutilizada una web entera. Por eso conviene conocerlo bien y asegurarnos de que lo utilizamos correctamente.

¿Qué es y para qué sirve el archivo ‘functions.php’?

‘functions.php’ es un archivo de funciones opcional disponible en cualquier tema de WordPress. Para que un tema funcione, no es necesario que exista este archivo, por eso según el que estemos utilizando, puede que ya esté creado o bien que lo tengamos que generar nosotros mismos si queremos ampliar el funcionamiento de un blog o una web.

Una vez creado el archivo, podemos utilizar ganchos (hooks) de WordPress, acciones y filtros para modificar prácticamente cualquier aspecto del sistema.

‘functions.php’ funciona como una biblioteca personal de funciones, es una manera fácil de ampliar, cambiar o alterar el comportamiento por defecto de WordPress. Se comporta exactamente igual que un plugin, añadiendo características y funcionalidad a una web, y se puede utilizar tanto para definir nuevas funciones PHP como para modificar las que ya incorpora el sistema.

Cada tema viene con su propio archivo de funciones, pero solo tendrán efecto las del tema activo. Muchas plantillas (especialmente las Premium y las más trabajadas) ya vienen con este archivo creado y cargado de funciones. Pero de todas formas, si nuestro tema no cuenta con él, podemos añadirlo nosotros mismos fácilmente. Solo hay que crear un archivo de texto sin formato nuevo, llamarlo “functions.php” y guardarlo dentro del directorio de nuestro tema.

Si te es más fácil, más abajo en este artículo puedes descargar ejemplos de plantillas de functions.php.

Una vez creado el archivo, podemos utilizar ganchos (hooks) de WordPress, acciones y filtros para modificar prácticamente cualquier cosa que tenga que ver con el sistema. El resultado será el mismo que si utilizamos un plugin de funciones y lo activamos desde el area de administración.

¿Por qué es tan popular?

La razón por la que casi siempre se habla de este archivo en los tutoriales es porque es más fácil y rápido añadir código en este archivo (que seguramente ya existe en el tema), que crear un plugin nuevo. El efecto sería el mismo, pero los plugins necesitan una descripción inicial con los detalles de la extensión, además de ser activados manualmente.

Pero la facilidad y libertad que ofrece WordPress para alterar y personalizar un diseño y su funcionamiento no debería llevarnos al extremo de cargar el archivo ‘functions.php’ de cualquier manera. No es una buena idea meter aquí todo tipo de códigos encontrados por Internet si no entendemos un poco lo que estamos haciendo.

De la misma manera que tenemos que tener cierto control a la hora de instalar plugins (por temas de rendimiento y seguridad), lo mismo pasa con ‘functions.php’. Un archivo descontrolado y mal organizado puede traer consecuencias poco agradables.

El uso de ‘functions.php’ solo está limitado por la imaginación de cada uno y por la destreza que tengamos trabajando con código PHP.

¿Dónde está este archivo?

Dónde está functions.phpSe encuentra dentro de la carpeta de cada tema. Si el tema que tenemos instalado se llamara “mytheme”, encontraríamos el archivo ‘functions.php’ en la ruta:

/wp-content/themes/mytheme/functions.php

Es probable que al abrir la carpeta del tema no encontremos ningún archivo con ese nombre. En este caso, podemos crear uno nuevo añadiendo un archivo de texto sin formato (para esto no sirve un procesador de textos) y darle el nombre “functions.php”. Después tenemos que guardarlo dentro del directorio que incluye el resto de archivos del tema (es decir, al mismo nivel que “style.css”).

Más abajo encontrarás un enlace para descargar un archivo functions.php vacío para utilizarlo como base.

En las webs gratuitas alojadas en “wordpress.com” no es posible acceder a este archivo ni a ningún otro código PHP, como tampoco está permitido instalar plugins o cambiar los estilos CSS.

¿Cómo se añade código en ‘functions.php’?

Si el archivo ya existe, podemos añadir código directamente desde el editor incluído con WordPress (en Apariencia > Editor). No es lo más recomendable, ya que no nos ofrece ningún tipo de ayuda visual (por ejemplo con colores, para diferenciar bien cada elemento) ni tampoco podemos deshacer lo que incluímos. Lo ideal es utilizar un gestor FTP y un editor de código como Coda, Sublime Text, Expresso, Dreamweaver, etc.

El archivo ‘functions.php’ debe empezar con la etiqueta de apertura de PHP “<?php”. Después de esta etiqueta ya podemos escribir o pegar código.

El código no tiene por qué tener un orden determinado, aunque lo suyo es, por comodidad, ordenarlo por tipo de funcionalidad, para después poder encontrar más fácilmente cada fragmento (especialmente si estamos trabajando en un diseño que va a pasar por otras manos).

Es recomendable (aunque totalmente opcional) comentar lo mejor posible cada función o fragmento de código que añadimos, para que así, cuando volvamos meses después a revisarlo sea más fácil para nosotros o para otros desarrolladores encontrar cada parte.

Cómo crear funciones personalizadas

Aparte de insertar fragmentos de código ya escritos (que es lo más habitual cuando empezamos a trabajar con Temas de WordPress), en functions.php podemos crear nuestras propias funciones personalizadas para utilizarlas después desde otras plantillas.

Una función es simplemente un nombre que le damos a un bloque de código que se ejecutará cada vez que llamemos a esta función. Por ejemplo, si tuviéramos que utilizar una función determinada en unos cuantos lugares (single.php, page.php, index.php…), en vez de incluirla varias veces, sería buena idea escribirla solo una vez y llamarla cada vez que la necesitemos. Con esto, además de mantener ordenados los archivos que forman parte del Tema, ganaremos en legibilidad y productividad, ya que, si tenemos que hacer algún cambio, solo será necesario editar el código una vez.

Crear una función nueva es muy fácil. Este sería el esquema:

function imprimir_fecha() { // Aquí incluímos el contenido // Ejemplo: imprimimos la fecha echo 'Hoy es ' . date('d/m/Y'); }

Para empezar, tenemos que escribir la palabra “function” seguida de un nombre que la identifique. El nombre de la función es libre, depende completamente de nosotros, pero es importante seguir unas reglas básicas de formato:

  • Separar las palabras con guión bajo (mi_nueva_funcion) o con mayúsculas (miNuevaFuncion)
  • No empezar con un número. Este nombre no serviría: 35_mi_nueva_funcion
  • En WordPress se suele añadir un prefijo (normalmente el nombre del Tema), para asegurarnos de que los nombres son únicos. Por ejemplo: twentythirteen_nueva_funcion

Después del nombre hay que incluir los paréntesis, que se utilizan para añadir parámetros opcionales (los parámetros son opciones, pero los paréntesis no), y finalmente las llaves de inicio y cierre: { }.

Después, para llamar a esta función, simplemente tenemos que incluir su nombre (junto con los paréntesis) en el punto concreto de la/s plantilla/s que nos interese. Así:

<?php imprimir_fecha(); ?>

En este caso, nuestra función lo único que hace es imprimir la fecha actual, pero lógicamente podrá ser tan compleja como queramos e incluir todo tipo de argumentos, funcionalidad, etiquetas de WordPress, etc.

Errores frecuentes

Como es tan fácil utilizarlo y al mismo tiempo tan potente, si no entendemos bien lo que hacemos y nos dedicamos a pegar fragmentos de código que vamos encontrando por Internet, es fácil que accidentalmente cometamos errores básicos, como por ejemplo mezclar etiquetas PHP (pegar el código sin tener en cuenta las etiquetas de apertura y cierre de PHP), o añadir código en algún lugar inapropiado.

<?php // Código ya existente <?php // Código que hemos encontrado en Internet y hemos pegado // sin tener en cuenta que hemos duplicado la apertura // y el cierre de PHP. ?> ?>

Aquí arriba podemos ver un ejemplo de código incorrectamente formado. Es algo muy elemental, pero es el error más frecuente al utilizar el archivo ‘functions.php’.

Aparte de esto, cualquier otro error típico de PHP afectará a todo el sistema, como funciones mal cerradas, condicionales que no terminan con “endif;” cuando utilizamos la sintaxis alternativa, variables no definidas correctamente, etc.

Otros errores frecuentes al cargar scripts externos.

¿Hace falta la etiqueta de cierre de PHP?

El código escrito en PHP va entre etiquetas “<?php” y “?>”. La etiqueta de apertura es necesaria, pero la de cierre, en este archivo, es opcional.

Según los estandares de código de WordPress, solo se añaden etiquetas de cierre “?>” en los archivos que no tienen que ser editados por los usuarios. Es decir que tanto el archivo ‘functions.php’ de los temas como ‘wp-config.php’ pueden dejarse sin cerrar, para evitar problemas, como los errores tipo ‘headers already sent‘. El resto de archivos PHP del nucleo del sistema deben cerrarse.

No conviene utilizar la etiqueta de apertura de PHP abreviada “<? … ?>” ni tampoco “<script language="php"> … </script>”.

Diferencias entre un plugin y el archivo functions.php

El archivo debería contener únicamente aquellas funciones específicas del tema en el que está incluido. Si lo que queremos es añadir alguna funcionalidad general que debería permanecer activa aunque el usuario cambie de tema, entonces deberíamos utilizar un plugin.

Si cambiamos el diseño de nuestra web con otro tema, la funcionalidad del plugin seguirá teniendo efecto, mientras que si utilizamos el archivo ‘functions.php’, la funcionalidad desaparecerá al cambiar de diseño

Los plugins de WordPress tienen que tener una cabecera con los detalles de cada extensión, mientras que el archivo de funciones del theme es más libre en este sentido. No es necesario (aunque sí extremadamente útil, especialmente si contiene mucho código) ningún tipo de comentario ni descripción.

Para que un plugin se pueda activar y entrar en funcionamiento, sus archivos tienen que estar guardados en la carpeta “wp-content/plugins”, mientras que functions.php se guarda dentro de la carpeta de cada theme. Por ejemplo: “wp-content/themes/mytheme/functions.php”

Los plugins solo se ejecutan al ser activados individualmente desde el area de administración. Esto es una gran ventaja, ya que nos permite probar cosas y, si no funcionan, simplemente desactivamos el plugin. En cambio, el archivo de funciones del tema se activa automáticamente al activar el propio theme que lo contiene. Cualquier código que pongamos ahí, se activará inmediatamente. Para desactivar alguna función habrá que eliminar el código o comentarlo.

La funcionalidad de los plugins se aplica a todos los themes que instalemos. Si cambiamos el diseño de nuestra web con otro tema, la funcionalidad del plugin seguirá teniendo efecto, mientras que si utilizamos el archivo ‘functions.php’, la funcionalidad desaparecerá al cambiar de diseño. En otras palabras, ‘functions.php’ solo afecta al tema activo. Si cambiamos a otro tema, sus funciones se desactivarán automáticamente.

Los plugins suelen estar programados para realizar tareas concretas (por ejemplo, hacer copias de seguridad, cambiar los títulos de las entradas, etc.), en cambio el archivo de funciones del theme puede alojar todo tipo de funciones con propósitos muy diferentes (por ejemplo, cambiar la palabra “protected”, modificar los resúmenes automáticos, activar las imágenes destacadas, activar la gestión nativa de menús, etc.)

Dada la facilidad con que WordPress permite ampliar y modificar sus funciones y comportamiento, es muy fácil también generar algún conflicto entre un plugin y las funciones que incluyamos en nuestro theme. Por ejemplo, si redefinimos mal una función o un filtro que ya existe, los resultados pueden ser bastante serios (bloques que desaparecen, avisos de errores o incluso que la web deje de funcionar por completo).

Cuando trabajamos con código que no hemos creado nosotros mismos, una ventaja importante de que sea en forma de plugin en vez de pegado directamente en functions.php son las actualizaciones. Los plugins se conectan periódicamente a un servidor central para comprobar si estamos utilizando la versión más actual, mientras que el código que añadimos en el archivo de funciones de nuestro tema en este sentido es más estático, no está supervisado más que por nosotros mismos.

Functions.php y los child themes

Un child theme (temas hijos, dependientes de una plantilla padre o superior) puede tener su propio archivo de funciones para ampliar o sustituir las funciones del tema padre. Es decir, al utilizar un tema dependiente de otro estaremos cargando dos archivos ‘functions.php’: el del tema superior y el del que está subordinado a éste (child theme).

Si el tema hijo no cuenta con este archivo (es opcional), lo podemos añadir manualmente. Más abajo puedes descargar uno vacío en la sección Recursos.

Es importante entender que el functions.php de un tema hijo no sustituye al del tema padre. Si los dos tienen este archivo, primero se carga el del hijo y después el del padre. Así se puede actualizar un tema y al mismo tiempo conservar las funciones personalizadas que uno ha creado.

Conviene que las funciones incluídas en functions.php del tema hijo vayan siempre englobadas dentro de un condicional con function_exists, para evitar duplicaciones:

/ Activamos la siguiente función sólo si no ha sido definida anteriormente / if ( !function_exist() ) : function nombre_de_mi_funcion() { } endif;

Con esto nos aseguramos de que la función no ha sido ya definida anteriormente y evitamos errores comunes como este:

Ejemplos de funciones que podemos añadir en functions.php

Internet está lleno de tutoriales y ejemplos que nos ayudan a modificar casi cualquier cosa de WordPress. Hay tantas cosas que se pueden personalizar que lo suyo es hacer una búsqueda directamente sobre lo que necesitamos. De todas formas, como ejemplo de funciones frecuentes, el archivo functions.php se puede utilizar para:

Recursos útiles: enlaces y descargas

Functions File Explained
Información oficial sobre el archivo functions.php en el WordPress Codex.

WPFunction.Me
Fragmentos de ejemplo variados organizados por tipo de función: apariencia, funcionalidad, imágenes, rendimiento y seguridad. Desde esta web podemos seleccionar los fragmentos de código que necesitamos y generar un archivo functions.php a medida:



Related news

Mairie de bricquebec
Triazole ir frequency ranges
Pedro carvalho hoje eu quero voltaire sozinho em
Autohotkey gui modalfa
Harold ramis movies directed by quentin
Moda do lenhador em
Modalitati de plata rate cetelem
Nautique super air 2019
Mairie de locqueltas 56390 highway
Aspiracion de secreciones por tubo endotraqueal en neonatos y