Crear Theme para WordPress. Primeros pasos.

Tabla de contenidos

Recientemente y tras compartir con vosotros como crear la estructura para una plantilla de WordPress he empezado, aunque con mucha falta de tiempo, a crear mi primer theme con el objetivo de usarlo en esta página web y de claro está compartirlo con el resto de vosotros, será gratuito y espero sea el primero de unos cuantos.

El theme se llamará Chéad que viene significando Primero en irlandés y cuyo origen se debe, por ser mi primera plantilla y por los colores por defecto que usará y claro está por mi fascinación por ese país :).

El objetivo de esta entrada, como apunté en aquella entrada, es compartir los primeros pasos de la construcción de este tema, como os dije iré compartiendo los diferentes pasos que llevaré a cabo hasta que lo complete. Quiero aprender yo y que la gente aprenda.

La estructura de las funciones principales de mi theme (lo que se viene llamando núcleo) la voy a crear en la carpeta kernel. Hasta ahora el código que voy a compartir está en los siguientes ficheros.

  • kernel/main.php
  • kernel/general.php
  • kernel/constants.php
  • functions.php

Fichero kernel/constants.php

[php]
/*
* FRAMEWORK CONSTANTS
*/
define(FRAMEWORK_VERSION, ‘0.1a’);
define(FRAMEWORK_AUTHOR, ‘Juan Ignacio Alberola Colomo’);
[/php]

Este va a ser el fichero, de momento, donde voy a ir almacenando las constantes de la plantilla. De momento se definen dos constantes, la versión del framework y el autor del mismo.

Fichero kernel/general.php

[php]
/*
* This function retrieves a WordPress option
*/
if ( !function_exists( ‘jiac_get_option’ )) {
function jiac_get_option($field, $array) {
// We get the option, if it does not exist get FALSE
$list = get_option( $array );
// If FALSE or if the key in the array is not set return FALSE, othertwise, the VALUE
return (!$list || !isset($list[$field]))? FALSE : $list[$field];
}
}

/*
* This function add/update a WordPress option
*/
if ( !function_exists( ‘jiac_update_option’ )) {
function jiac_update_option( $value, $field, $array) {

// Get the option, it is an array with multiple fields
$list = get_option($array, false);

// We get FALSE if the optione does not exist
if ( !$list ) {
$list = array();
}

// Add the new value
$list[$field] = $value;

// Return TRUE or FALSE
return update_option( $array, $list );
}
}
[/php]

En este fichero irán todas las funciones generales, de momento irán todas aquí hasta que vea que crecen demasiado e igual opto por separarlas en diferentes ficheros dependiendo del uso de las mismas.

De momento he creado dos funciones para guardar/actualizar y para obtener opciones guardadas de WordPress. Para ello como veis se invoca a las funciones get_option y update_option propias del núcleo de WordPress. No voy a entrar a explicar todo el código pues he intentado comentarlo bien.

Fichero kernel/main.php

[php]
/*
* Required files
*/

require_once( get_template_directory().’/kernel/general.php’ );
require_once( get_template_directory().’/kernel/constants.php’ );

/*
* Init hooks
*/
add_action( ‘after_setup_theme’ , ‘jiac_setup_theme’ );
function jiac_setup_theme ( ) {

// Set the framework version
jiac_update_option( FRAMEWORK_VERSION, ‘version’, ‘jiac_framework_options’ );
jiac_update_option( FRAMEWORK_AUTHOR, ‘author’, ‘jiac_framework_options’ );

// Adding the theme supports
add_theme_support( ‘post_thumbnails’);
add_theme_support( ‘post-formats’, array( ‘aside’, ‘gallery’, ‘image’, ‘quote’ ) );
add_theme_support( ‘automatic-feed-links’ );

// Adding editor style
add_editor_style();

// Adding post supports
add_post_type_support( ‘post’, ‘excerpt’ );
add_post_type_support( ‘page’, array(‘excerpt’, ‘thumbnail’) );

}
[/php]

Aquí irán las funciones principales.

Hasta el momento he creado la función para la acción ‘after_setup_theme’ que se usa para cargar toda la configuración del tema. Para aprender más sobre las funciones que aquí se han utilizado os dejo los enlaces al Codex de WordPress.

El siguiente paso que lo tengo en proceso es elegir bien que parámetros van a ser configurables en común a la mayoría de plantillas que cree para centralizarlos en el kernel y configurar la página del panel de administración para la actualización de los valores.

Fichero functions.php

Como se explicó en el anterior post sobre la estructura de las plantillas, el fichero functions.php debe aglutinar todas las funciones. Pero no tiene porque tener todo el código, se pueden usar includes o requieres desde el fichero, y así lo voy a hacer en lo sucesivo. Hasta ahora queda así, haciendo un require_once de main.php.

[php]
require_once get_template_directory().’/kernel/main.php’;
[/php]

Y hasta aquí lo poco que llevo hasta ahora… espero poder darle un empujón esta semana. Ando buscando un sistema para gestionar mi tiempo… A ver si consigo organizarme.

Compartir en facebook
Compartir en twitter
Compartir en linkedin

1 comentario en «Crear Theme para WordPress. Primeros pasos.»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

También te puede interesar

Lo que no son cuentas, son cuentos

Descarga nuestros paneles de control para monitorizar la rentabilidad de tu negocio y deja de creer en falsas promesas.

100% libre de humo