Autonomía digital y tecnológica

Código e ideas para una internet distribuida

Cómo estructurar correctamente el archivo functions.php de un theme de WordPress: algunas buenas prácticas

Imago voragine.net

El archivo functions.php aloja fragmentos de código que queremos cargar en momentos y lugares diferentes, y para no repetirlos cada vez, convertimos en funciones que llamamos para que ejecuten su misión. funcions.php puede contener funciones a las que llamaremos en otras plantillas para construir el theme, otras a las que llamará un usuario desde el administrador (mediante shortcodes por ejemplo), y otras que cargarán funcionalidades adicionales a las que WordPress incluye de base (tipos de contenido personalizado, elementos extra en el administrador…).

El archivo functions.php es el lugar para alojar la lógica del theme, las funciones. Y las plantillas alojarán el HTML y las llamadas a las funciones que sean necesarias. Así la edición del theme es más sencilla, porque todas las funciones están en el mismo sitio, y las plantillas permanecen limpias y ordenadas.

A su vez las funciones dentro de functions.php deben seguir una estructura que permita llamarlas cuando son necesarias, modificaciones de otros programadores (por ejemplo en un child theme), activarlas y desactivarlas de manera sencilla… Para tener un buen functions.php, conviene estructurarlo siguiendo una serie de buenas prácticas:

Elegir los nombres de las funciones

Nuestras funciones se añaden a las miles que ya incluye WordPress. Para que no haya conflictos con ellas, es conveniente elegir cuidadosamente los nombres de nuestras funciones, asegurándonos de que no coinciden con alguna otra. Siempre es una buena idea usar un prefijo característico en el nombre de nuestras funciones, para evitar nombres demasiado genéricos. Por ejemplo, example_prefix_theme_. Así una función para cargar las opciones del theme se llamaría example_prefix_options.

Un detalle que uno mismo agradece cuando se vuelve a un código tras cierto tiempo es que el nombre de una función sea suficientemente explícito, para saber inmediatamente lo que hace. Mejor example_prefix_thumbnail_and_images_options que example_prefix_options.

Usar los hooks y filtros

Los hooks permiten decidir cuándo cargar o ejecutar una función dentro de la secuencia de carga de WordPress. Si cualquier fragmento de código de functions.php debe pertenecer a una función, cada función debe estar asociada a un hook que le diga cuándo ejecutarse.

Aprovechar las funciones ya existentes en WordPress

Antes de programar una función para una necesidad específica, es conveniente buscar en la documentación de WordPress; hay muchas probabilidades de que ya exista una solución, y que esté programada mejor de lo que tú o yo seamos capaces de programar.

Crear una función madre de configuración del theme

Esta función, que se cargará cuando el theme se cargue, contendrá los filtros y hooks de carga de cada función, que estará definida fuera de ella, claro. Por ejemplo:

add_action( 'after_setup_theme', 'example_prefix_theme_setup' );
function example_prefix_setup() {
        /* Aquí filtros y hooks que cargarán las diferentes funciones */
        /* Por ejemplo: */
        
        /* Carga los archivos JavaScript de acuerdo al hook 'wp_enqueue_scripts'. */
        add_action( 'wp_enqueue_scripts', 'example_prefix_load_scripts' );
}

A continuación podemos definir cada una de las funciones:

add_action( 'after_setup_theme', 'example_prefix_theme_setup' );
// definimos ahora la función que llamaremos en la función del theme
// carga scripts js evitando conflictos
function example_prefix_load_scripts() {
        wp_enqueue_script('jquery');
        wp_enqueue_script(
                'bootstrap.min',
                get_template_directory_uri() . '/bootstrap/js/bootstrap.min.js',
                array( 'jquery' ),
                '2.3.2',
                FALSE
        );

Dejar un comentario

No hay comentarios en esta entrada.
*
*

 

No hay trackbacks