Chaque template est divisé au moins en 3 parties réutilisables dans tous les templates :
- L'en-tête ( header )
- Le contenu principal ( content )
- le pied de page ( footer )
Les élements cités correspondent à des fragments de template que l'on inclus dans le template principal.
//repertoire_web/site_worpdress/wp-content/themes/mon_theme/index.php
<?php get_header(); ?>
<?php get_template_part('content'); // 'content' -> indique la présence du template "content.php" ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>Un template peut aussi contenir d'autres éléments comment une ou plusieurs barres latérales ( sidebar ), un formulaire de recherche, une zone de commentaires, une zone de navigation entre articles ( art. précédents et suivants ).
Un thème est donc susceptible de contenir les fichiers suivants :
- index.php
- header.php
- content.php
- footer.php
- sidebar.php
- style.css
- functions.php
<html>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<title><?php wp_title( '|', true, 'right' ); ?></title>
<!--[if lt IE 9]>
<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js"></script>
<![endif]-->
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<div id="page" class="hfeed site">
<header id="masthead">
<h1 class="site-title"><?php bloginfo( 'name' ); ?></h1>
<h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
<div id="navbar" class="navbar">
<nav id="site-navigation" class="navigation main-navigation" role="navigation">
<?php
wp_nav_menu( array(
'theme_location' => 'primary',
'menu_class' => 'nav-menu' )
);
?>
<?php get_search_form(); ?>
</nav><!-- #site-navigation -->
</div><!-- #navbar -->
</header><!-- #masthead -->
<div id="main" class="site-main">Il contient ce qu'on appelle la "Boucle", qui liste tous les contenes à afficher. Si on se trouve sur une page listant tous les articles d'une même catégorie, cette boucle renverra une liste d'éléments, si on se trouve sur un article seul ou une page, cette boucle renverra une liste avec un seul éléments. Elle est utilisée dan tous les cas de figure.
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?><?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<div class="post">
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<small><?php the_time('F jS, Y'); ?></small>
<div class="entry">
<?php the_content(); ?>
</div>
<p class="postmetadata">Posted in <?php the_category(', '); ?></p>
</div> <!-- fin du premier bloc div -->
<?php endwhile; else : ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?> </div> <!-- #main -->
</body>
<script>...</script>
</html>ce sont des raccourcis utilent utilisables depuis les templates. Une liste exhaustive regroupée par catégories est disponible dans la documentation en ligne de Wordpress
<?php bloginfo( $show ); ?> charset = UTF-8
description = Just another WordPress blog
siteurl = http://www.example.com/home (DEPRECATED! use url option instead)
url = http://www.example.com/home
wpurl = http://www.example.com/home/wp
get_template_directory_uri()
get_stylesheet_directory_uri() (for the child template directory).Ils s'utilisent également dans les templates et fournissent des conditions pratiques l'affichage ou la mise en forme de contenu en fonction de certaines conditions.
//Page d'accueil du site ?
if ( is_front_page() && is_home() ) {
// La page d'accueil par défaut
}
//Un article unique ( et non un page unique ) ?
if(is_single()){
}
//Un page ( et non un article ) ?
if(is_page()){
}
//Catégorie de l'article en cours
if(in_category( array( 'F1', 'F2', 'F3' ) ){
}
//Page catégorie / archive ?
if(is_category()){
}
//Une certaine catégorie ?
if(is_category('rock')){
}