Pourquoi un thème sur mesure
Les thèmes premium du marketplace sont pratiques mais limités : code surchargé, dépendances inutiles, performances médiocres et personnalisation contrainte.
Un thème sur mesure développé par Lueur Externe est léger, performant et parfaitement adapté à vos besoins.
Architecture du thème
mon-theme/
├── style.css # Métadonnées du thème
├── functions.php # Configuration et hooks
├── index.php # Template par défaut
├── header.php # En-tête
├── footer.php # Pied de page
├── single.php # Article unique
├── page.php # Page statique
├── archive.php # Archives
├── search.php # Résultats de recherche
├── 404.php # Page 404
├── template-parts/ # Composants réutilisables
│ ├── content.php
│ ├── content-card.php
│ └── content-hero.php
├── inc/ # Fonctions PHP
│ ├── setup.php
│ ├── enqueue.php
│ └── custom-post-types.php
├── assets/
│ ├── css/
│ ├── js/
│ └── images/
└── acf-json/ # Champs ACF versionnés
Configuration (functions.php)
<?php
// Chargement des fichiers de configuration
require_once get_template_directory() . '/inc/setup.php';
require_once get_template_directory() . '/inc/enqueue.php';
// Support du thème
function mon_theme_setup() {
add_theme_support('title-tag');
add_theme_support('post-thumbnails');
add_theme_support('html5', ['search-form', 'comment-form', 'gallery', 'caption']);
add_theme_support('responsive-embeds');
register_nav_menus([
'primary' => __('Navigation principale', 'mon-theme'),
'footer' => __('Navigation pied de page', 'mon-theme'),
]);
add_image_size('card-thumbnail', 400, 250, true);
add_image_size('hero-banner', 1920, 600, true);
}
add_action('after_setup_theme', 'mon_theme_setup');
// Chargement des assets
function mon_theme_enqueue() {
$version = wp_get_theme()->get('Version');
wp_enqueue_style('mon-theme-style', get_stylesheet_uri(), [], $version);
wp_enqueue_script('mon-theme-script', get_template_directory_uri() . '/assets/js/main.js', [], $version, true);
}
add_action('wp_enqueue_scripts', 'mon_theme_enqueue');
Template Hierarchy
WordPress sélectionne le template le plus spécifique :
single-{post-type}-{slug}.php
→ single-{post-type}.php
→ single.php
→ singular.php
→ index.php
Template personnalisé
<?php
/**
* Template Name: Page Services
* Description: Template pour les pages de services
*/
get_header();
?>
<main class="services-page">
<section class="hero">
<h1><?php the_title(); ?></h1>
<?php if (get_field('hero_subtitle')): ?>
<p class="subtitle"><?php the_field('hero_subtitle'); ?></p>
<?php endif; ?>
</section>
<?php if (have_rows('services_list')): ?>
<section class="services-grid">
<?php while (have_rows('services_list')): the_row(); ?>
<article class="service-card">
<h2><?php the_sub_field('title'); ?></h2>
<p><?php the_sub_field('description'); ?></p>
</article>
<?php endwhile; ?>
</section>
<?php endif; ?>
</main>
<?php get_footer(); ?>
ACF (Advanced Custom Fields)
ACF permet de créer des champs personnalisés sans code :
// Enregistrer un groupe de champs par code
if (function_exists('acf_add_local_field_group')) {
acf_add_local_field_group([
'key' => 'group_hero',
'title' => 'Section Hero',
'fields' => [
[
'key' => 'field_hero_subtitle',
'label' => 'Sous-titre',
'name' => 'hero_subtitle',
'type' => 'text',
],
[
'key' => 'field_hero_cta',
'label' => 'Bouton CTA',
'name' => 'hero_cta',
'type' => 'link',
],
],
'location' => [[['param' => 'page_template', 'operator' => '==', 'value' => 'template-services.php']]],
]);
}
Performance
- Charger les scripts en
deferouasync - Utiliser les images responsive avec
srcset - Minimiser les requêtes SQL avec
WP_Queryoptimisé - Activer le cache objet (Redis)
- Lazy load natif pour les images
Conclusion
Un thème WordPress sur mesure est un investissement qui se rentabilise en performance, maintenabilité et expérience utilisateur. Lueur Externe développe des thèmes WordPress performants et accessibles pour ses clients.