web-dev-qa-db-fra.com

Le meilleur moyen d'afficher du contenu dynamique sur un site Wordpress en cache?

Je souhaite vraiment utiliser l'un des plugins Cache pour pouvoir diffuser davantage de pages statiques sur mon thème/site WordPress. C'est évidemment la meilleure mise à niveau de performance que vous puissiez effectuer pour un thème/site WordPress.

Quelques éléments dynamiques de mon thème m'ont empêché de faire le saut vers les pages statiques/en cache.

Je vais décrire ces problèmes ci-dessous et fournir 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 traiter les problèmes que j’explique, soit d’être rassuré sur le fait que je suis au moins sur la bonne voie. Je suis un PHP vétéran de plus de 12 à 13 ans, mais je n’utilise WordPress que depuis 1 à 2 ans et jusqu’à présent, je suis vraiment impressionné par ses capacités, je suis maintenant un fanatique de WordPress 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 ...


Single Posts page

  1. Problème de compteur de vues - J'ai une fonction qui récupère une valeur de comptage pour un "compteur de vues/hits" sur la page Posts pour donner une idée des vues de messages que l'utilisateur peut voir. Ce ne sont pas des visiteurs uniques, mais un simple compteur de résultats. J'ai créé une table MySQL distincte pour ces valeurs. J'essaie toujours de décider si je devrais continuer avec cela ou si je devais utiliser plutôt un méta-champ. Dans les deux cas, dans un affichage 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 administrateurs ne sont pas ajoutées.) La valeur est ensuite affichée sur la page sous la forme de 988 Views

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

  2. Problème de publication de commentaires - Si vous utilisez le système de commentaires WordPress par défaut, chaque fois qu'un nouveau commentaire est ajouté à une publication, la page Cached/Static de cette publication doit être reconstruite ! D'après ce que j'ai vu, il existe une option sur les plugins Caching que j'ai vus qui vous permettra de le faire, vous pouvez la faire reconstruire la ou les page (s) chaque fois qu'un nouveau commentaire y est posté. Cela semble bien sur papier, mais j'imagine que c'est un cauchemar dans un site très fréquenté/actif où plusieurs utilisateurs pourraient commenter le même article à peu près au même moment (tous non testés, donc je ne sais pas).

    Publier des commentaires Solution possible - Donc, pour résoudre le problème des commentaires, j’ai mentionné une solution ci-dessus dans laquelle vous pouvez configurer le plug-in Cache pour reconstruire simplement la page Cached/Static à chaque nouveau commentaire. Ma préoccupation était que je ne suis pas vraiment à quel point cela fonctionnera à long terme. L’autre solution possible que je vois de plus en plus utilisée consiste à utiliser une solution Javascript telle que Disqus Comments ou une solution similaire. Pendant longtemps, j’étais vraiment opposé à cela, car je voulais que tous mes commentaires ne fassent pas appel à une tierce partie pour mon système de commentaires. Je suis toujours un peu sur la barrière à 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 cependant? Ou pensez-vous que c'est vraiment la voie à suivre?

Sidebar à l'échelle du site

  1. Barre latérale Articles récents Problème - J'ai des onglets dans ma barre latérale qui s'affichent sur l'ensemble du site, sur toutes les pages du site ... l'un des onglets charge les 10 articles les plus récents du blog. page du site, une fois qu'un nouvel article/article est ajouté, il faudrait reconstruire chaque page statique/statique du site pour refléter l'ajout de nouveaux articles dans cette "liste des articles les plus récents".

    Encadré 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 Cached/Static afin qu'ils ne soient pas tous reconstruits si souvent, mais puissent tout de même afficher les publications les plus récentes.

    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 trop me salir les mains, voici tous les problèmes que je peux voir jusqu'à présent avec la conversion de mon thème en Cache/Static Friendly


METTRE À JOUR

Je viens de penser à un autre sujet de réflexion. Toutes les balises/catégories, ainsi que les pages utilisateur, devront être mises à jour à chaque fois qu'un article est ajouté, ce qui correspond à la liste des articles de cette page. J'imagine que cela doit déjà être une fonctionnalité des plugins Caching

14
JasonDavis

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

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

Totalement d'accord: avantage supplémentaire: le chargement via ajax lorsque le contenu "important" est terminé est le chemin à parcourir. Faites tout ce que vous pouvez pour réduire le temps de chargement de la page. J'irais certainement avec Ajax sur celui-ci.

Poster des commentaires

Je doute que ce sera un gros problème. Mais encore une fois: ajax. Charger des commentaires en dehors du contenu "principal". Faites-le régulièrement publier de nouveaux commentaires (comme Stackoverflow ou Twitter.com, avertissant l'utilisateur et attendant qu'il clique pour actualiser le flux de commentaires).

Sidebar à l'échelle du site

J'utiliserais un autre plugin: WP Widget Cache , qui vous permet de définir la durée de mise en cache de chaque widget de votre barre latérale et fonctionne bien avec les plugins de mise en cache habituels. Dans votre cas, définissez simplement "0" pour ne pas mettre en cache ces widgets, ou "10 minutes" (mieux que ne pas mettre en cache du tout).

2
pixeline

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

Allez dans Administrateur WordPress> Performance> Cache de page et modifiez la section sous ne mettez jamais ces pages en cache

Never cache 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 mises en cache, par exemple 5 ou 15 minutes. La plupart des pages en cache concernent les personnes qui visitent pour la première fois et qui ne possèdent pas de cookie de session. La vue en cache "la plus demandée" de la page est présentée aux visiteurs anonymes pour la première fois.

1
Damien