Bext for WordPress
WordPress qui coopère avec le cache, au lieu de le subir. Purge chirurgicale à chaque modification, taming d'Action Scheduler, en-têtes sûrs, tableau de bord opérateur et pont SDK — pour les sites servis par bext.
Fini le choix entre « rapide » et « à jour ».
Derrière un cache classique, il faut choisir : un TTL long (rapide mais périmé après une édition) ou un TTL court (frais mais chaque premier visiteur paie un rendu PHP complet — mesuré à ~4,4 s sur un vrai site WooCommerce). Bext supprime ce compromis.
Cache classique
- TTL long → contenu périmé après chaque modification
- TTL court → rendu PHP complet à chaque cycle
- Action Scheduler s'auto-appelle (5–21 s) et sature PHP-FPM
- Risque de mettre en cache une page connectée
Avec Bext
- TTL long ET frais : WordPress purge les bonnes URL à l'édition
- Purge ciblée et non bloquante (une seule requête)
- Runner Action Scheduler maîtrisé → le cron système draine la file
- Connecté / panier / commentaire → jamais mis en cache anonyme
Huit modules, activables un par un
Chaque module se désactive d'un cran (constante, réglage ou filtre) et ne fait rien si le site n'est pas servi par bext.
Cache coopératif
À chaque publication, bext-wp calcule les URL impactées (permalien, accueil, archives, flux, sitemap) et les purge en une seule requête non bloquante. Le cache reste long, le contenu reste frais.
Taming d'Action Scheduler
Désactive le runner loopback admin-ajax (mesuré à 5–21 s) et laisse le cron système vider la file. Fini les auto-requêtes qui saturent PHP-FPM.
En-têtes sûrs
Les réponses connectées / panier / commentaire reçoivent Cache-Control: private, no-store — jamais mises en cache pour les visiteurs anonymes.
Tableau de bord
Une page « Bext » dans l'admin + une pastille dans la barre : statut, journal de purge, file Action Scheduler, contrôles de santé, accessibilité du serveur.
Réglages & bext cloud
Tout se configure depuis l'admin (mode local ou cloud, endpoint, jeton, modules) — sans toucher à wp-config. Mode cloud pour WordPress derrière une edge bext distante.
Pont SDK
Optionnel : wp_mail via l'envoi e-mail géré de bext et des jobs d'arrière-plan sur une file bext. Tout échoue en sécurité (repli vers WordPress).
Multisite
Réglages réseau (défauts + verrouillage), tableau de bord multi-sites avec purge par site ou globale, et clés de cache correctes en sous-répertoire.
WP-CLI
wp bext status · wp bext purge [chemin] · wp bext doctor — pour scripter purges et diagnostics depuis le terminal ou la CI.
Auto (local)
bext sert WordPress sur la même machine. Tout passe par le loopback 127.0.0.1:80 — aucune clé, aucun accès disque (compatible open_basedir). bext est détecté via le paramètre FastCGI BEXT_SERVER.
Cloud (distant)
WordPress dialogue avec une edge bext distante (bext cloud) via un jeton porteur. Configurez l'endpoint et le jeton dans Bext → Réglages — idéal pour un WordPress hébergé ailleurs, derrière le cache bext.
Deux minutes, deux façons
Extension classique
git clone github.com/webdesign29/bext-wp.git
# puis activez « Bext for WordPress » dans l'admin
Must-use, sur toute une flotte
# le script copie l'extension dans chaque site
sudo bin/deploy-fleet.sh --site=exemple.com # test
sudo bin/deploy-fleet.sh # tous
Installez
En extension classique, ou en must-use sur toute une flotte via bin/deploy-fleet.sh (copie par site, compatible open_basedir).
Détection auto
bext-wp détecte qu'il est servi par bext (paramètre FastCGI BEXT_SERVER) et n'agit que dans ce cas. Rien à brancher.
Configurez
Choisissez le mode (local / cloud) et activez les modules depuis Bext → Réglages. Ou verrouillez tout via des constantes wp-config.
Profitez
Modifiez un article : les bonnes URL sont purgées en arrière-plan. Le cache reste long, votre site reste frais et rapide.
WP-CLI
wp bext purge # purge tout le cache du site
wp bext purge /blog/bonjour/ # purge une URL (argument positionnel)
wp bext doctor # lance les contrôles de santé
Sur multisite, purgez tout le réseau : for url in $(wp site list --field=url); do wp --url="$url" bext purge; done
Open source. Testé en CI. Prêt à l'emploi.
GPL-2.0, PHP 7.4 → 8.3, documentation et wiki complets. Déployez Bext sur un site servi par bext et oubliez le compromis cache.