La meilleure façon d'afficher du contenu dynamique sur un site Wordpress en cache?


14

Je veux vraiment utiliser l'un des plugins Cache pour pouvoir servir plus de pages statiques sur mon thème / site WordPress. C'est évidemment la meilleure mise à niveau des performances que vous pouvez faire pour un thème / site WordPress.

Il y a quelques éléments dynamiques dans mon thème qui m'ont empêché de faire le saut vers les pages statiques / mises en cache.

Je décrirai ces problèmes ci-dessous et fournirai un moyen possible de résoudre chaque problème auquel j'ai pensé jusqu'à présent.

Le but de cet article est soit d'obtenir de meilleures idées / méthodes pour gérer les problèmes que j'explique, soit d'avoir l'assurance que je suis au moins sur la bonne voie. Je suis un vétéran de PHP depuis plus de 12-13 ans mais n'utilise WordPress que depuis 1-2 ans et jusqu'à présent, je suis vraiment impressionné par les capacités, je suis un fan de WordPress total maintenant si une telle chose existe lol!

Ok donc les problèmes auxquels j'ai pensé jusqu'à présent lors de la conversion en pages en cache ...


Page Messages uniques

  1. Problème de compteur de vues - J'ai une fonction qui va chercher une valeur de comptage pour un "compteur de vues / frappes" sur la page des messages pour donner une idée des vues des messages pour un utilisateur. Ce ne sont pas des visiteurs uniques mais juste un simple compteur de visites. J'ai créé une table MySQL distincte pour ces valeurs, j'essaie toujours de décider si je dois continuer avec cela ou changer pour utiliser un Meta Field à la place. Dans les deux cas, dans une vue de page, la valeur de la base de données est extraite et augmentée de +1 à chaque chargement de page. (Les vues des utilisateurs Admin ne sont pas ajoutées.) La valeur est ensuite affichée sur la page sous la forme de988 Views

    Compteur de vues Solution possible - Je pourrais exécuter cette valeur / fonction en utilisant Ajax. Une fois la nouvelle page mise en cache / statique chargée, Javascript pourrait alors utiliser Ajax pour demander et mettre à jour le compteur de vues pour cette page. Est-ce que cela semble être la meilleure solution pour quelque chose comme ça?

  2. Problème de commentaires sur les articles - En utilisant le système de commentaires WordPress par défaut, chaque fois qu'un nouveau commentaire est ajouté à un article, il faudrait que la page en cache / statique pour que cet article soit reconstruit ! D'après ce que j'ai vu, il y a une option sur les plugins de mise en cache que j'ai vu qui vous permettra de faire exactement cela, vous pouvez le faire reconstruire les pages à chaque fois qu'un nouveau commentaire lui est posté. Cela sonne bien sur le papier, mais je peux imaginer que ce soit un cauchemar dans un site très fréquenté / actif où plusieurs utilisateurs peuvent commenter le même article à la même heure (tous non testés, donc je ne sais pas)

    Poster des commentaires Solution possible - Donc, pour une solution au problème des commentaires, j'ai mentionné une solution ci-dessus où vous pouvez définir le plugin Cache pour simplement reconstruire la page en cache / statique à chaque nouveau commentaire. Ma préoccupation était que je ne sais pas vraiment si cela fonctionnera à long terme. Maintenant, l'autre solution possible que je vois de plus en plus utilisée est d'utiliser une solution Javascript comme Disqus Comments ou une solution similaire. Pendant longtemps, j'étais vraiment contre cela car je voulais que tous mes commentaires ne s'appuient sur aucun tiers pour mon système de commentaires. Je suis toujours un peu sur la clôture à propos de ce problème, mais je suis passé à l'utilisation des commentaires Disqus sur mon site et jusqu'à présent, cela fonctionne assez bien. Je suis ouvert à d'autres solutions possibles? Ou pensez-vous que c'est vraiment la voie à suivre?

Barre latérale à l'échelle du site

  1. Problème des articles récents de la barre latérale - J'ai des onglets dans ma barre latérale qui sont affichés à l'échelle du site sur chaque page du site ... l'un des onglets charge les 10 articles les plus récents sur le blog, car cela apparaît sur chaque page du site , une fois qu'un nouvel article / article est ajouté, il faudrait que chaque page en cache / statique du site soit reconstruite pour refléter l'ajout de nouveaux articles dans cette "Liste des articles les plus récents"

    Articles récents Solution possible - Encore une fois, je pense avoir trouvé une bonne solution possible. Je pourrais utiliser Javascript et Ajax pour charger ce contenu dans les pages cachées / statiques afin qu'ils n'aient pas TOUS à être reconstruits si souvent mais pourraient toujours afficher les messages les plus récents.

    Cela vous semble-t-il une bonne solution? Ou, plus important encore, pouvez-vous penser à une autre solution meilleure ou alternative à ce problème?


Sans me salir les mains, c'est tous les problèmes que je peux voir jusqu'à présent pour convertir mon thème en Cache / Static Friendly


MISE À JOUR

Je viens de penser à un autre problème auquel réfléchir. Toutes les balises / catégories ainsi que les pages utilisateur devront être mises à jour chaque fois qu'un article est ajouté et qu'il correspond à la liste des articles. Je suppose que cela doit déjà être une caractéristique des plugins de mise en cache


1
Pourquoi Views Counter doit être correct à chaque demande? Que se passera-t-il s'il affiche 5 à 10 vues manquantes avant la mise à jour du cache?
Ünsal Korkmaz

Réponses:


2

Donc, il y a beaucoup de sous-questions, je vais essayer de répondre à chacune.

Problème de compteur de vues - Je pourrais exécuter cette valeur / fonction en utilisant Ajax. Une fois la nouvelle page mise en cache / statique chargée, Javascript pourrait alors utiliser Ajax pour demander et mettre à jour le compteur de vues pour cette page.

Tout à fait d'accord: avantage supplémentaire: le chargement via ajax lorsque le contenu "important" est terminé est le chemin à parcourir. Faites tout votre possible pour réduire le temps de chargement des pages. J'irais certainement avec Ajax sur celui-ci.

Poster un problème

Je doute que ce soit un gros problème. Mais encore une fois: ajax. Chargez les commentaires en dehors du contenu "principal". Demandez-lui d'envoyer régulièrement de nouveaux commentaires (tout comme Stackoverflow, ou twitter.com, avertissant l'utilisateur et attendant son clic pour actualiser le flux de commentaires).

Barre latérale à l'échelle du site

J'utiliserais un autre plugin: WP Widget Cache , qui vous permet de définir le temps de mise en cache pour chaque widget dans vos barres latérales, et fonctionne bien avec les plugins de mise en cache habituels. Dans votre cas, définissez simplement "0" pour aucune mise en cache pour ces widgets, ou "10 minutes" (mieux que pas de mise en cache du tout).


1

Si vous utilisez le cache total w3, vous pouvez exclure la mise en cache de certaines pages comme votre barre latérale.

Allez dans WordPress Admin> Performances> Page Cache et modifiez la section sous ne jamais mettre en cache ces pages

Ne jamais mettre en cache les pages W3 Total Cache
Cet exemple montre que les fichiers de la barre latérale d'un thème sont exclus du cache.

Vous pouvez également définir un délai d'expiration plus court sur vos pages en cache, par exemple 5 ou 15 minutes. Les pages mises en cache affectent le plus les personnes qui visitent pour la première fois et qui n'ont pas de cookie de session. Comme la vue en cache de la page «la plus demandée» est présentée pour la première fois, aux visiteurs anonymes.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.