WordPress | 20 de mayo de 2014

El archivo de funciones en los temas de WordPress

En casi todos los temas de WordPress encontraremos un archivo llamado functions.php y, sin lugar a duda, deberíamos incluirlo en cada uno de los temas que desarrollemos.

Este es un archivo de gran relevancia ya que es el que nos permitirá ampliar el alcance que tienen nuestros temas creando funciones específicas y habilitando características de WordPress que requieren activación por parte del tema activo para entrar en funcionamiento.

Algunas de las cosas que podremos hacer desde el archivo de funciones de nuestro tema son:

  • Definir características del tema
  • Cargar archivos CSS y Javascript
  • Definir áreas específicas para el uso de widgets en nuestro tema (conocidos como sidebars)
  • Crear áreas para el uso de menús dinámicos
  • Habilitar las imágenes destacadas
  • Habilitar el uso de formatos de entrada
  • Personalizar la pantalla de ingreso de WordPress
  • Crear tipos de contenido adicionales (como por ejemplo Productos)
  • Crear taxonomías adicionales (como por ejemplo Categorías de productos )
  • Añadir opciones al personalizador de temas de WordPress
  • Crear widgets

Y la lista puede extenderse hasta el infinito.

Entendiendo las acciones

WordPress es un software que funciona en base a eventos, esto quiere decir que para que una página de WordPress se presente en el navegador hay una serie de acciones que deben ocurrir en un orden específico.

Esta serie de acciones que llevan a finalmente mostrar una página en el navegador se conoce como el ciclo de vida de página de WordPress, lo cual tiene tremenda importancia respecto al código que se utiliza dentro de functions.php.

La mayoría de las funciones que se suelen usar en este archivo están asociadas (enganchadas) a alguna acción, es decir, se ejecutarán cuando el ciclo de vida llegue a un punto específico en donde WordPress pueda interpretar la función que queremos realizar.

Por ejemplo, si desde functions.php estamos registrando un área específica para el uso de widgets, deberemos asociar esta función a la acción ‘widgets_init‘, de este modo cuando WordPress inicialice los widgets, registrará nuestra área específica (sidebar).

Algunos ejemplos de código

A continuación, voy a compartir contigo algunos fragmentos de código bastante frecuentes que pueden resultar de gran utilidad dentro de nuestro archivo de funciones.

Vas a apreciar como todos ellos cumplen con la siguiente estructura:

  1. Se define el nombre de una función
  2. Se inserta algo de código dentro de la función
  3. Se asocia el nombre de la función a una acción específica dentro del cilo de vida de página de WordPress

Registra un área para el uso de  menús

//Función que creará las áreas de menú
function apk_navigation_menus() {

	register_nav_menus('main-menu', 'Área de menú principal');

}

// Asocia la función 'apk_navigation_menus' a la acción 'init'
add_action( 'init', 'apk_navigation_menus' );

Cargando la hoja de estilos del tema

//Función que carga las hojas de estilo del tema
function apk_theme_styles() { 

	//Registrando estilos
	wp_register_style('theme-style', get_stylesheet_uri(), '', '1.0', 'all');
	
	//Cargando estilos
	wp_enqueue_style( 'theme-style' );
}
//Asociamos la función a la acción wp_enqueue_scripts
add_action('wp_enqueue_scripts', 'apk_theme_styles');

Cargando un archivo JavaScript desde el tema

//Función que cargará los scripts
function apk_theme_scripts() {
	
	//Registrar scripts
	//Se declara dependencia de la librería jQuery, por lo tanto WordPress se encargará de cargarla
	wp_register_script('theme-functions', get_stylesheet_directory_uri() . '/js/functions.js', array('jquery'), '1.0', true);
	
	//Cargar scripts
	wp_enqueue_script('theme-functions');
	
}
//Asocia la función a la acción 'wp_enqueue_scripts'
add_action('wp_enqueue_scripts', 'apk_theme_scripts');

Registrar un sidebar (área para el uso de Widgets)

// Función que registra los sidebars
function apk_custom_sidebar() {

	//Sidebar principal
	register_sidebar(array(
		'name' => __( 'Sidebar principal', 'apk' ),
		'id' => 'main-sidebar',
		'description' => __( 'Este es el sidebar principal.', 'apk' ),
		'class'         => '',
		'before_widget' => '<div id="%1$s" class="widget %2$s">',
		'after_widget'  => '</div>',
		'before_title' => '<h3 class="widget-title">',
		'after_title' => '</h3>'
	));
}

// Asocia la función 'apk_custom_sidebar' a la acción 'widgets_init'
add_action( 'widgets_init', 'apk_custom_sidebar' );

Si observas con detención estos fragmentos de código podrás apreciar lo sencillo que son en comparación con las importantes funciones que cumplen.

Se trata de entender, no de memorizar

Lo interesante de estos trozos de código es que no hacen falta grandes conocimientos en programación para poder entender lo que se está realizando en cada uno de ellos. De hecho, ni siquiera hace falta memorizarlos porque siempre vamos a tener al alcance nuestro navegador el codex de WordPress con explicaciones y ejemplos.

Además, también existe la tremenda herramienta GenerateWP, que nos permitirá obtener estos y otros códigos, simplemente llenando datos en un formulario.

Por lo tanto, lo importante no es memorizar sino poder entender el código, para poder identificar dentro de nuestros temas en qué lugar y de qué forma se están realizando ciertas acciones y saber dónde intervenir en caso de ser necesario.

En mi próximo curso «Creación de temas WordPress profesionales» que estaré lanzando en algunos días más, aprenderemos mucho más en detalle el alcance del archivo functons.php, además de conocer, entender y desarrollar todos los archivos necesarios dentro de un tema completamente funcional.

Si quieres saber más acerca de la fecha y oferta de lanzamiento, los temas a tratar y más detalles respecto al curso, sólo debes ingresar tu email en el formulario que aparece más abajo para poder enviarte la información.