WPCode Lite — Snippets propres (header/footer, hooks)
Mes snippets prêts à coller et mes réglages pour insérer du code propre, traçable et réversible sans toucher au thème. Au menu : header/footer, conditions, hooks WordPress, sécurité et performance.
- PHP • HTML • CSS • JS • Shortcodes
- Insertions automatiques (Header/Body/Footer)
- Conditions (post type, rôle, URL…)
- Sécurité : nonces, escape, rollback
📋 Sommaire
1) Pourquoi WPCode Lite
Éditer le functions.php ou l'en‑tête du thème n'est plus nécessaire. WPCode Lite centralise les snippets, permet de les activer/désactiver en 1 clic, de cibler des emplacements précis (Header/Body/Footer) et d'appliquer des conditions (type de contenu, rôle, URL…). En bonus : un rollback simple si un snippet pose problème.
2) Installation & principes
- WordPress → Extensions → Ajouter → « WPCode » → Installer → Activer.
- Créez un snippet → choisissez le type (PHP/HTML/JS/CSS/Shortcode).
- Définissez l'Auto Insert : Header, Body (début/fin), Footer ou Shortcode.
- Appliquez des conditions (site‑wide, archives, singular, ID, rôle…).
- Activez et testez sur une page de staging si possible.
Astuce : nommez vos snippets « catégorie — objectif » (ex. Analytics — GA4 gtag).
3) Types de snippets
PHP
Fonctions & hooks WordPress. Tester en staging. (désactivez si erreur)
HTML
Balises, meta, JSON‑LD, bannières.
CSS
Styles globaux légers (priorité : évitez d'y mettre un framework complet).
JS
Scripts front (déférable), événements, consentement.
4) Auto Insert : Header / Body / Footer
- Header : meta, preconnect, JSON‑LD, balises nécessaires avant le rendu.
- Body (start) : bannières consentement, pixels essentiels.
- Footer : JS non critique, init des composants, analytics déféré.
- Shortcode : rendre un snippet dans un article/page via
.
5) Conditions & portée
- Site‑wide, ou ciblage fin : types de contenu, catégories, ID, modèles, rôle utilisateur.
- Front office seulement (
!is_admin()) ou admin‑only. - URL contient / commence par, expression régulière (Pro pour options avancées).
6) Priorités & ordre de chargement
Pour les hooks (add_action / add_filter), utilisez la priorité (par défaut 10). Exemple : charger vos styles après le thème :
add_action('wp_enqueue_scripts', function(){
wp_enqueue_style('custom-overrides', get_stylesheet_directory_uri().'/overrides.css', ['theme-handle'], '1.0');
}, 20); // priorité 20 > 10
7) Sécurité : sanitization & nonces
- Échapper en sortie :
esc_html(),esc_url(),wp_kses(). - Assainir en entrée :
sanitize_text_field(),absint(). - Nonces pour les formulaires/JS :
wp_create_nonce()+wp_verify_nonce().
8) Performance (défer, preload, preconnect)
Servez les scripts non critiques en defer, utilisez preconnect/dns‑prefetch vers les domaines tiers et preload pour les assets critiques. Évitez les doublons avec WP Rocket/LSCache.
<!-- Header HTML -->
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
<link rel="dns-prefetch" href="//www.googletagmanager.com">
// JS (Footer) — marquer un script comme defer
add_action('wp_enqueue_scripts', function(){
wp_enqueue_script('my-lib', 'https://cdn.example.com/lib.js', [], null, true);
add_filter('script_loader_tag', function($tag, $handle){
if('my-lib' === $handle){ $tag = str_replace(' src', ' defer src', $tag); }
return $tag;
}, 10, 2);
});
9) Mes recettes prêtes à coller
A. GA4 (gtag) — consent‑aware
Header (HTML) : charge gtag seulement si consentement.
<script>window.__consent=window.__consent||{analytics:false};</script>
<script> if(window.__consent.analytics){
var s=document.createElement('script'); s.async=1; s.src='https://www.googletagmanager.com/gtag/js?id=G-XXXXXXX';
document.head.appendChild(s); window.dataLayer=window.dataLayer||[]; function gtag(){dataLayer.push(arguments)};
gtag('js', new Date()); gtag('config', 'G-XXXXXXX'); }
</script>
Si vous utilisez Site Kit, ne dupliquez pas le tag.
B. Désactiver emojis & oEmbed
add_action('init', function(){
remove_action('wp_head','print_emoji_detection_script',7);
remove_action('wp_print_styles','print_emoji_styles');
remove_action('wp_head','wp_oembed_add_discovery_links');
remove_action('wp_head','rest_output_link_wp_head');
});
C. JSON‑LD Article (minimal)
<script type="application/ld+json">{
"@context":"https://schema.org","@type":"Article",
"headline":"{title}","datePublished":"{date}","author":{"@type":"Person","name":"{author}"}
}</script>
Remplacez par vos variables dynamiques.
D. Autoriser SVG (basique)
add_filter('upload_mimes', function($m){ $m['svg']='image/svg+xml'; return $m; });
Attention : SVG peut contenir du JS. Privilégiez des SVG de confiance ou une sanitization dédiée.
E. Bouton CTA après 3ᵉ paragraphe
add_filter('the_content', function($c){
if(is_singular('post')){
$parts = preg_split('/(<\/p>)/i', $c, -1, PREG_SPLIT_DELIM_CAPTURE);
if(count($parts) > 6){
$cta = '<div class="cta"><a class="btn" href="/go/outil">Voir l\'outil</a></div>';
array_splice($parts, 6, 0, $cta);
return join('', $parts);
}
} return $c;
});
F. Preload police locale
<link rel="preload" as="font" href="/fonts/Inter-Var.woff2" type="font/woff2" crossorigin>
10) Shortcodes utiles
// [annee]
add_shortcode('annee', fn()=> date('Y'));
// [site_name]
add_shortcode('site_name', fn()=> get_bloginfo('name'));
// [cta slug="wp-rocket"]
add_shortcode('cta', function($a){ $a=shortcode_atts(['slug'=>''], $a); return 'Essayer'; });
11) Hooks pratiques
wp_head: metas, JSON‑LD, preconnect.wp_footer: scripts non critiques.template_redirect: redirections simples (attention aux boucles).the_content: inserts CTA/notes (avec parcimonie).
12) Consentement & RGPD
Chargez Analytics/pixels après consentement. Centralisez la variable window.__consent (ou votre CMP) et entourez vos scripts.
13) Versionning & export/import
- Nommez et taggez vos snippets.
- Exportez en JSON et conservez une copie Git/Drive.
- Notez la date et l'impact attendu dans la description.
14) Débogage & conflits
- Activez un à un. Si écran blanc : désactivez le snippet via la base (ou SSH) et corrigez la syntaxe.
- Console navigateur : F12 → Console pour JS.
- Surveillez les doublons avec Site Kit, WP Rocket, thèmes.
15) Checklist express
- Nom clair + tags (catégorie, objectif).
- Auto Insert adapté (Header/Body/Footer/Shortcode).
- Conditions précises (évitez site‑wide par défaut).
- Test staging → prod. Rollback prêt.
- Pas de doublons avec d'autres plugins.
Témoignages
« On a migré tout notre code du thème vers WPCode : déploiements plus sûrs et rollbacks en 1 clic. »
« Le jeu de conditions évite de charger des scripts partout. On a gagné en vitesse. »
« Les snippets “prêts à coller” (GA4, preload police, emojis) nous ont fait gagner des heures. »
FAQ
Puis‑je casser le site avec un snippet PHP ?
Oui si erreur de syntaxe. Testez en staging, validez la syntaxe, et gardez l'accès FTP/SSH pour désactiver si besoin.
WPCode remplace‑t‑il un thème enfant ?
Pas totalement. Pour les surcharges de templates, utilisez un child theme. Pour petites fonctions/inserts, WPCode suffit.
Où mettre GA4 : Header ou Footer ?
Header si tag classique, Footer si usage déféré et non critique. Ne dupliquez pas avec Site Kit.
Comment limiter un snippet à quelques pages ?
Utilisez les conditions de WPCode (ID, taxonomie, modèles) ou entourez votre code PHP avec is_page()/is_singular().
WP Rocket/LiteSpeed font déjà du defer. Conflit ?
Évitez les doublons. Si le cache gère le defer/delay JS, ne le forcez pas dans WPCode pour les mêmes handles.
SEO (texte à copier)
Title ≤60 : WPCode Lite — Mes snippets (header, footer, hooks) Meta ≤155 : Snippets WPCode Lite prêts à l'emploi : header, footer, hooks, conditions, sécurité et performances. Modèles simples sans toucher au thème. Mots-clés : wpcode; snippets wordpress; header footer; hooks; ga4; preconnect; json-ld