WordPress

Crear Theme para WordPress. Primeros pasos.

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

/*
 * FRAMEWORK CONSTANTS
 */
define(FRAMEWORK_VERSION, '0.1a');
define(FRAMEWORK_AUTHOR, 'Juan Ignacio Alberola Colomo');

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

/*
 * 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 );
        }
}

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

/*
 * 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') );

}

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.

require_once get_template_directory().'/kernel/main.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.

(Visited 411 times, 1 visits today)
Related posts
WordPress

¿Cómo crear landing pages? 3 alternativas

WordPress

Auditar WordPress con WPScan en OSX

WordPress

Consultas útiles a la BD de WordPress

WordPress

Seguridad en WordPress. Firewall 6G

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Si continuas utilizando este sitio, aceptas el uso de las cookies. Más información

Las opciones de cookie en este sitio web están configuradas para "permitir cookies" para ofrecerte una mejor experiéncia de navegación. Si sigues utilizando este sitio web sin cambiar tus opciones o haces clic en "Aceptar" estarás consintiendo las cookies de este sitio.

Cerrar