Pour le moment, je lance PHP code dans mes barres latérales. Même si j'ai le suivant
header("Pragma: no-cache");
header("cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
Il semble toujours servir le contenu mis en cache.
Cela peut être accompli avec la fonctionnalité de mise en cache de fragments dont dispose W3TC. Avait été demandé/répondu quelques fois.
Vous aurez probablement besoin de trouver une solution pour charger ce contenu via JavaScript ... malheureusement. C'est le seul moyen de résoudre ce problème que j'ai trouvé. Je l'ai résolu en construisant un conteneur et un fichier séparé (non mis en cache) PHP qui contient le contenu souhaité dans la barre latérale.
Ensuite ... utilisez ".load" dans jQuery pour extraire le contenu PHP dans ce conteneur sur la page mise en cache. Fonctionne bien pour moi ici: http://www.missouladowntown.com .
J'espère que cela pourra aider.
Les en-têtes que vous avez mis dans votre question s'appliquent à l'ensemble de la page. Vous ne pouvez pas les définir uniquement pour une barre latérale, car la page a déjà été chargée à ce stade.
Vous pouvez faire ce que dit Ross et charger le fragment de la barre latérale après le chargement de la page via ajax, ou utiliser un iframe pour le charger. Vous pouvez ensuite utiliser les en-têtes pour définir l'expiration du contenu de la barre latérale séparément sur la page principale.