WordPress: creare un tema in HTML5

WordPress: creare un tema in HTML5

Molti nuovi temi di WordPress vengono scritti e sviluppati in HTML5. In questo articolo vorrei illustrare alcune modalità per sviluppare i nostri temi utilizzando questo nuovo linguaggio di marcatura.

DOCTYPE e sezione head

Per prima cosa dobbiamo inserire il nuovo DOCTYPE HTML5:


<!DOCTYPE html>

Poi dobbiamo specificare la lingua in uso nell'elemento html:

[php htmlscript="true"] <html <?php language_attributes(); ?>>

Nell'elemento head dobbiamo specificare la codifica dei caratteri:

[php htmlscript="true"] <meta charset="<?php bloginfo( 'charset' ); ?>" />

Quindi dobbiamo inserire il profilo per i Microformats:


<link rel="profile" href="http://gmpg.org/xfn/11" />

Per supportare Internet Explorer 8 e inferiori dobbiamo anche inserire lo script per HTML5 di Remy Sharp:


<!--[if lt IE 9]>
	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

Il CSS

Nel CSS dobbiamo aggiungere degli stili predefiniti per i nuovi elementi HTML5 a vantaggio dei browser che non li supportano ancora:


article, aside, header, 
hgroup, nav, figure,
figcaption, section, footer {

	display: block;
}

Titolo del sito e sua descrizione

Possiamo usare questa struttura:

[php htmlscript="true"] <header id="branding"> <hgroup> <?php if( is_front_page() || is_home() || is_404() ) { ?> <h1 id="site-title"><a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('description'); ?>"><?php bloginfo('name'); ?></a></h1> <h2 id="site-description"><?php bloginfo('description'); ?></h2> <?php } else { ?> <h2 id="site-title"><a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('description'); ?>"><?php bloginfo('name'); ?></a></h2> <h3 id="site-description"><?php bloginfo('description'); ?></h3> <?php } ?> </hgroup> </header>

Menu di navigazione

Useremo l'elemento nav:

[php htmlscript="true"] <nav id="navigation"> <?php wp_nav_menu( array( 'theme_location' => 'header-menu' ) );?> </nav>

Post

Possiamo usare questa struttura:

[php htmlscript="true"] <?php get_header(); ?> <section id="content"> <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?> <article id="post-<?php the_ID(); ?>" <?php post_class('post'); ?>> <header> <h1><a href="<?php the_permalink() ?>" title="<?php the_title(); ?>" rel="bookmark"><?php the_title(); ?></a></h1> <figure><?php if ( has_post_thumbnail() ) { the_post_thumbnail(); }?></figure> </header> <section class="content"> <?php the_content(); ?> </section> <footer class="post-meta"> <p><?php _e('Pubblicato il '); the_time('F j, Y'); _e(' alle '); the_time() ?></p> <p><?php _e(' Categorie: '); the_category(', ') ?></p> <p><?php the_tags('Tag: ', ', ', ' '); ?></p> </footer> </article> <?php comments_template( '', true ); ?> <?php endwhile;?> </section> <?php get_sidebar(); ?> <?php get_footer(); ?>

Ovviamente la struttura base dei post può essere riutilizzata nella home page e nelle pagine di archivio o di categoria con le opportune modifiche del caso.

div o section?

Abbiamo usato l'elemento section a scopo dimostrativo, ma la semantica di questo elemento lo rende più adatto a documenti dalla struttura molto più complessa di quella dei post o delle parti di un blog. In questo caso l'elemento div sarebbe stato più appropriato, come già avviene nel framework Whiteboard.

La colonna laterale

La colonna laterale ospita in genere i widget di WordPress. Per questo motivo dobbiamo innanzitutto fare in modo che i widget ricevano la corretta marcatura:


if ( function_exists('register_sidebar') ) {

	register_sidebar(array('name'=>'Sidebar',
		'before_widget' => '<aside class="widget-sidebar"><ul>',
		'after_widget' => '</ul></aside>',
		'before_title' => '<h3>',
		'after_title' => '</h3>',
	));
}

In questo caso abbiamo utilizzato l'elemento aside per i widget. Quindi possiamo creare la nostra sidebar:

[php htmlscript="true"] <section id="sidebar"> <?php if ( ! dynamic_sidebar( 'Sidebar' )) : ?> <!--widget predefiniti--> <?php endif; ?> </section>

div o section?

Abbiamo usato l'elemento section a scopo dimostrativo, ma la semantica di questo elemento lo rende più adatto a documenti dalla struttura molto più complessa di quella dei post o delle parti di un blog. In questo caso l'elemento div sarebbe stato più appropriato, come già avviene nel framework Whiteboard.

Il footer

Il footer del sito si presenterà in questo modo:

[php htmlscript="true"] <footer id="site-info"> <p>&amp;copy; <?php echo date("Y") ?> <a href="<?php bloginfo('url'); ?>/" title="<?php bloginfo('description'); ?>"><?php bloginfo('name'); ?></a>. <?php _e('All Rights Reserved.'); ?></p> </footer>
Torna su