Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ndice Themes
2 Punto de partida 5
3 Creando un tema 7
3.2 Plantillas 9
3.4 functions.php 14
Themes | TELEFNICA // 3
Para tomar esta decisin deberemos tener en cuenta varios La cantidad de dinero disponible y el plazo para el desarrollo son
factores: determinantes, aunque lo deseable es que estn alineados con los
objetivos a cumplir.
Funcionalidades y flexibilidad
Personalizacin Soporte
Algunos temas estn preparados para modificar su aspecto Es importante, cuando usamos temas de terceros, contar con
directamente desde el panel de administracin de Wordpress sin alguna va de soporte a travs de la cual poder hacer consultas al
necesidad de tener conocimientos de diseo o CSS. Estos temas desarrollador en caso de que nos encontremos con algn problema.
permiten por ejemplo cambiar las tipografas o el esquema de
colores de la web
Extras
Otras consideraciones
Mantenimiento
Dependiendo de nuestros objetivos, puede ser esencial encontrar
Tambin debemos consultar si el tema esta correctamente un tema que funcione correctamente en cualquier tipo de
mantenido, es decir, si recibe actualizaciones en caso de detectarse dispositivo y tamao de pantalla (algo que podemos considerar
errores o para adaptarse a nuevas versiones de Wordpress. esencial en casi todos los casos actualmente), o contar con
traducciones a diferentes idiomas.
2 Punto de partida
Podemos crear un tema desde cero o partir de un tema Starter themes
ya existente. Lo habitual es modificar un tema cuando las
modificaciones a realizar van a ser mnimas, pues de lo contrario Sin embargo, tambin existen temas a modo de esqueleto que
puede ser ms sencillo desarrollar ntegramente el tema por nos facilitan el desarrollo de nuestros propios temas, puesto que
nosotros mismos. cuentan con el cdigo bsico y con u diseo mnimo que nos servir
de punto de partida ahorrndonos tiempo. Algunos de los ms
populares son Underscores5, Components6, Bones7, Slekeleton8,
Parent/Child themes FoundationPress9. Tambin existen otros como Sage10, que est
pensados para ofrecer un flujo de trabajo ms profesional al
La forma habitual de crear un tema partiendo de otro es la de desarrollador (usando herramientas como Gulp/Bower, SASS).
generar un tema hijo (child theme) que herede del tema a modificar
pero le sobreescriba o modifique en aquello que queramos. Esta Una simple bsqueda de starter themes para WordPress nos
forma de actuar permitir que podamos actualizar el tema padre ofrecer ms opciones y nos permitir consultar el estado de cada
en caso de que aparezca una nueva versin sin que eso signifique uno de los proyectos para elegir el que ms nos convenga.
perder nuestras modificaciones especficas al mismo.
5 http://underscores.me/
Crear un tema hijo a partir de otro ser recomendable cuando Tambin llamado _s. Desarrollado por Automattic.
queramos hacer pequeas variaciones que el propio tema no 6 http://components.underscores.me/
nos permita realizar desde el rea de administracin, y siempre Tambin de Automattic., Ofrece puntos de partida diferentes segn el
que no vayamos a cambiar de forma drstica su estructura y su tipo de web a desarrollar
funcionalidad. 7 http://themble.com/bones/
8 http://themes.simplethemes.com/skeleton/
9 https://foundationpress.olefredrik.com/
Hace uso del framework front-end Foundation 6.
10 https://roots.io/sage/
Themes | TELEFNICA // 6
Theme frameworks
11 http://my.studiopress.com/themes/genesis/
12 http://diythemes.com/
13 https://www.pagelines.com/
Themes | TELEFNICA // 7
3 Creando un tema
Para crear un tema solo es necesario tener un buen conocimiento Lo primero es instalar el tema padre en caso de no estar ya
de HTML y CSS. Conocer PHP nos permitir ampliar y configurar instalado. Para hacerlo podemos seguir acceder a wp-admin >
ciertas funcionalidades, pero la mayora de las lineas que Apariencia > Temas y pulsar el botn Aadir nuevo para buscar
tendremos que escribir en PHP cuando creemos temas son el tema que queramos e instalarlo directamente. En caso de que
llamadas a funciones bien documentadas14. el tema que queramos instalar no est disponible en el listado
ofrecido por Wordpress, bastar con descargarlo de la web
La documentacin de WordPress tiene mucha informacin sobre el correspondiente y subirlo (comprimido en .zip) mediante el botn de
desarrollo de temas: Subir tema, o va FTP (descomprimido) a nuestro directorio wp-
content/themes, de forma que quede junto a los temas de ejemplo
Manual del Desarrollador de Temas
y con una estructura interna similar.
https://developer.wordpress.org/themes/
Gua de desarrollo de temas en el Codex En nuestro caso vamos a usar como padre uno de los temas
https://codex.wordpress.org/Theme_Development provistos con la instalacin de Wordpress (Twenty Sixteen) por lo
que no ser necesario instalar un tema nuevo
En las siguientes pginas veremos las claves bsicas para el
desarrollo de temas. Crearemos un tema partiendo de otro, aunque Nuestro tema hijo, deber estar junto con los dems, por lo que
el proceso es similar para crear un tema desde cero. Solo cambia crearemos una carpeta junto al resto de temas en el directorio wp-
el tiempo que nos llevara su desarrollo y el hecho de que, en este content/ a la que llamaremos twentysixteen_child
caso, nos podremos beneficiar de las posibles actualizaciones del
tema padre.
@import url(../twentysixteen/style.css); 15 Esta informacin no debe coincidir con la de ningn otro tema.
16 Date cuenta de que usamos el nombre que tiene el directorio de
la carpeta, no el que aparece con maysculas y espacios en el
panel de administracin.
Themes | TELEFNICA // 9
3.2 Plantillas
Las plantillas son los archivos que generarn las pginas a mostrar Wordpress indica que esta pgina sea la principal de la web si no
a los visitantes en funcin de su peticin. Estos archivos incluyen la se indica lo contrario en el wp-admin
estructura HTML, cdigo PHP y las llamadas etiquetas de plantilla
single.php
(template tags)17 que son funciones que nos facilitan obtener
Plantilla para mostrar cada entrada de forma individual.
elementos o informacin de nuestro wordpress.
single-{post-type}.php
Al estar creando un tema hijo, ya contamos con las plantillas del Plantilla para mostrar cada entrada del tipo definido18, de forma
tema padre, que podremos reescribir o ampliar. En caso de estar individual. Por ejemplo single-book.php se usar para mostrar
creando un tema completamente nuevo, es preciso crear al menos de forma de forma individual las entradas del tipo book.
una plantilla llamada index,php que sera la que se usara para
page.php
mostrar todas las pginas de nuestro sitio.
Plantilla para mostrar cada pgina de forma individual.
Lo normal es que queramos usar plantillas diferentes para category.php
diferentes pginas de nuestra web. Plantilla a mostrar cuando se solicita una categora
determinada.
index.php
Plantilla principal. Es la nica cuya presencia es obligada. tag.php
Plantilla a mostrar cuando se solicita una etiqueta determinada.
comments.php
Plantilla para comentarios. taxonomy.php
Plantilla a mostrar cuando se solicita un trmino determinado
front-page.php
de una taxonoma.
Plantilla para la pgina principal.
author.php
home.php
Plantilla a mostrar cuando se solicita informacin sobre un
Plantilla para la pgina que muestra las ltimas entradas.
18 Veremos como crear diferentes tipos de entradas en el prximo
17 https://codex.wordpress.org/Template_Tags captulo.
Themes | TELEFNICA // 10
19 https://developer.wordpress.org/themes/basics/template-hierarchy/
Themes | TELEFNICA // 11
Themes | TELEFNICA // 12
<?php <?php
/** /**
* Template Name: Full Width Page * Template Name: Full Width Page
* *
* @package TelWP Theme * @package TelWP Theme
*/ */
...
// A continuacin el cdigo de la plantilla <div id=primary class=content-area full-width>
...
Veamos un ejemplo. Copiaremos la plantilla por defecto para las
pginas (page.php) del tema Twenty Sixteen y lo copiaremos en <?php get_sidebar(); ?>
el directorio raz de nuestro tema hijo con otro nombre20. Despus
<?php get_footer(); ?>
20 Evitando los comunes. https://developer.wordpress.org/themes/
basics/template-files/#common-wordpress-template-files
Themes | TELEFNICA // 13
3.4 functions.php
Podemos aadir un archivo llamado functions.php en el directorio el cdigo de otros temas, especialmente si vamos a crear un
raz de nuestro tema para crear cualquier funcin a la que tema hijo. En las siguientes pginas vamos a ver un fragmento
queramos llamar en las plantillas de nuestro tema. del archivo functions.php del tema Twenty Sixteen, incluido por
defecto en las instalaciones de WordPress.
Aunque no es obligatorio, si es recomendable comenzar este
archivo con un DocBlock con informacin del tema: Este fragmento hace uso de funciones como add_theme_support21
que es usada varias veces para:
<?php
Usar como ttulo y logotipo de la pgina los que se configuren en
/** WP-Admin.
* TelWP Theme custom functions. Habilitar las imgenes destacadas en entradas y pginas (su
tamao se configura despus mediante otra funcin).
*
Listar los formatos de post soportados
* @package TelWP Theme
*/ Otra importante funcin que aparece es register_nav_menus que
permite designar los mens que usar nuestra plantilla indicando el
nombre interno y el que se mostrar al usuario22.
function sayHello(){
echo "Hola!";
21 https://developer.wordpress.org/reference/functions/add_theme_
} support/
22 El uso de la funcin especial __() sirve para permitir la traduccin de
Adems, podemos asignar nuestras funciones a hooks como cadenas. El primer argumento es la cadena a traducir y el segundo
veremos a continuacin. el dominio o mbito de esa traduccin, que en este caso se ha
configurado unas lineas ms arriba mediante la funcin load_theme_
Una buena forma de aprender a desarrollar temas es estudiar textdomain().
Themes | TELEFNICA // 15
wp-content/themes/twentysixteen/functions.php
...
if ( ! function_exists( twentysixteen_setup ) ) :
/**
* Sets up theme defaults and registers support for various WordPress features.
*
* Note that this function is hooked into the after_setup_theme hook, which
* runs before the init hook. The init hook is too late for some features, such
* as indicating support for post thumbnails.
*
* Create your own twentysixteen_setup() function to override in a child theme.
*
* @since Twenty Sixteen 1.0
*/
function twentysixteen_setup() {
/*
* Make theme available for translation.
* Translations can be filed at WordPress.org. See: https://translate.wordpress.org/projects/wp-
themes/twentysixteen
Themes | TELEFNICA // 16
* If youre building a theme based on Twenty Sixteen, use a find and replace
* to change twentysixteen to the name of your theme in all the template files
*/
load_theme_textdomain( twentysixteen );
...
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded <title> tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( title-tag );
/*
* Enable support for custom logo.
*
* @since Twenty Sixteen 1.2
*/
Themes | TELEFNICA // 17
/*
* Enable support for Post Thumbnails on posts and pages.
*
* @link http://codex.wordpress.org/Function_Reference/add_theme_support#Post_Thumbnails
*/
add_theme_support( post-thumbnails );
set_post_thumbnail_size( 1200, 9999 );
...
/*
* Enable support for Post Formats.
*
* See: https://codex.wordpress.org/Post_Formats
*/
add_theme_support( post-formats, array(
aside, image, video, quote, link, gallery, status, audio, chat,
) );
...
}
endif; // twentysixteen_setup
add_action( after_setup_theme, twentysixteen_setup );
La ltima linea asocia la funcin anterior al hook after_setup_ Como indica el comentario del inicio de la funcin, las funciones
theme23 que es el evento que se dispara nada ms cargar el tema de los temas hijos se cargan antes que las de su padre. Por eso se
activo. incluye la funcin dentro de un condicional que comprueba que no
se haya definido la funcin previamente (por el tema hijo).
23 https://developer.wordpress.org/reference/hooks/after_setup_
theme/