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 defer ou async
  • Utiliser les images responsive avec srcset
  • Minimiser les requêtes SQL avec WP_Query optimisé
  • 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.