Dynamische Seiten zwischenspeichern / Teile vom Caching ausschließen

Lesezeit: 1 Minute

Benutzer-Avatar
Mantikor

Ich verwende W3 Total Cache zum Zwischenspeichern meiner WordPress-Seiten, Beiträge usw.
Jetzt habe ich eine Schaltfläche erstellt, die eine Sitzungsvariable festlegt, um dem Server mitzuteilen, ob der Benutzer eine mobile oder Desktop-Ansicht wünscht, und diese Funktion aufruft:

<?php function mobile_css() {
    if(is_mobile() && !isset($_SESSION['mobile'])) : ?>
    <link type="text/css" media="all" rel="stylesheet" href="https://stackoverflow.com/questions/17919975/<?php bloginfo("template_url'); ?>/css/mobile.css" />
  <?php elseif($_SESSION['mobile'] == "ja") : ?>
    <link type="text/css" media="all" rel="stylesheet" href="https://stackoverflow.com/questions/17919975/<?php bloginfo("template_url'); ?>/css/mobile.css" />
    <?php endif;
}

Das Problem ist, dass Seiten jedes Mal, wenn sie zum ersten Mal geladen werden, zwischengespeichert werden. Wenn ich also die Seite mit Session Mobile öffne, wird Mobile angezeigt. Wenn ich dann zum Desktop wechsle und diese Seite erneut besuche, wird immer noch die Mobile-Version angezeigt, da sie zwischengespeichert wurde, sodass sie das erste Mal angefordert wurde.

Hat jemand eine Idee, wie man das verhindern kann?

Benutzer-Avatar
Mantikor

Ok, die Lösung war Fragment-Caching. Zuerst müssen Sie Ihre geheime Phrase per Einstellung festlegen

define('W3TC_DYNAMIC_SECURITY', 'my_string');

in wp-config.php und dann können Sie PHP-Code wie diesen verwenden

<!-- mfunc echo "Hello World<br/>"; --><!-- /mfunc -->

die diesen dynamischen Code ausgibt

<?php echo "Hello World<br/>"; ?>

1282250cookie-checkDynamische Seiten zwischenspeichern / Teile vom Caching ausschließen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy