J'ai un site qui permet aux utilisateurs de s'inscrire et de se connecter mais pas via le wp-login.php
standard, etc. - tout est fait dans le thème et un peu de s2member
également.
J'ai rencontré des problèmes où, avec la mise en cache des pages activée, mon code affiche un bouton de connexion ou un bouton "votre compte", affichant les éléments mis en cache.
J'utilise le code ci-dessous pour décider quel bouton est affiché selon que le membre de niveau utilisateur approprié est connecté ou non.
<?php if (current_user_is("s2member_level1")) : ?>
<?php
$current_user = wp_get_current_user();
$redirect = '&redirect_to='.urlencode(wp_make_link_relative(get_option('siteurl')));
$uri = wp_nonce_url( site_url("wp-login.php?action=logout$redirect", 'login'), 'log-out' );
?>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown">My Account</a>
<ul class="dropdown-menu">
<li><a href="<?= $uri; ?>">Logout</a></li>
<li><a href="<?= get_permalink(x); ?>">Edit Account</a></li>
</ul>
</li>
<?php else : ?>
<li class="login-button">
<a class="btn-lg" href="<?= get_permalink(x); ?>">Member Login</a>
</li>
<?php endif; ?>
Cependant, avec la mise en cache des pages activée, cela pose toutes sortes de problèmes.
Je regardais les notes sur la mise en cache des fragments dans la sectionFAQ du W3TC, mais il semble qu'il y ait un problème majeur: il dit:
Sachez que les fonctions WordPress ne seront pas disponibles.
Donc, si je comprends bien, cela m'empêche de pouvoir utiliser la mise en cache de fragments.
Comme le bouton de connexion/mon compte de membre est omniprésent dans le navigateur principal du site, je viens de désactiver la mise en cache des pages pour le moment.
La seule option pour moi d’intégrer une forme d’approche AJAX pour la gestion des sections dynamiques dépend-elle du statut auth/guest?
Ceci est une fonctionnalité. Vous pouvez essayer de désactiver la mise en cache pour les utilisateurs connectés, mais si cela se trouve dans la navigation principale, cela ne vous aidera pas, selon les paramètres de l'écran:
Ne cachez pas les pages des utilisateurs connectés
Les utilisateurs non authentifiés peuvent afficher une version en cache de la dernière vue d'un utilisateur authentifié sur une page donnée. Désactiver cette option n'est pas recommandé.
Il existe également d'autres questions sur cette question qui pourraient éclaircir ceci davantage:
Affichage de la connexion après la déconnexion (problème W3 Total Cache)