web-dev-qa-db-ja.com

キャッシュされたWordpressサイトに動的コンテンツを表示するための最良の方法は?

私は自分のWordPressテーマ/サイトでもっと静的なページを提供できるように、本当にCacheプラグインの1つを使いたいです。これは明らかにあなたがWordPressテーマ/サイトのためにすることができる最高のパフォーマンスのアップグレードです。

私のテーマには、静的ページやキャッシュページへの飛躍を抑制するためのいくつかの動的要素があります。

以下でこれらの問題を概説し、これまで考えてきた各問題を解決するための可能な方法を提供します。

この記事の目的は、私が説明した問題に対処するためのより良いアイデアや方法を得ること、あるいは少なくとも私が正しい軌道に乗っているという安心感を得ることです。私は12 - 13年以上前からPHPのベテランですが、過去1 - 2年でWordPressを使用していたので、今のところ私は本当にその機能に感心しています。そのようなことが笑存在しています!

さて、私がこれまでにキャッシュページに変換するときに考えてきた問題は….


シングル投稿ページ

  1. Views Counter問題 - Postsページの「View/hit Counter」のカウント値を取得して、ユーザーに表示するPosts Viewsのアイデアを提供する機能があります。これらはユニークな訪問者ではなく、単なるヒットカウンターです。これらの値用に別のMySQLテーブルを作成しましたが、それでも続行するか、代わりにメタフィールドを使用するように変更するかを決定しようとしています。どちらの方法でも、ページビューではデータベースの値がフェッチされ、ページがロードされるたびに+1されます。 (管理者ユーザーのビューは追加されません。)その後、値は988 Viewsの形式でページに表示されます。

    Views Counter考えられる解決策 - このValue /関数をAjaxを使って実行することができます。新しいCached/Staticページがロードされると、JavascriptはAjaxを使ってそのページのViewsカウンタを要求および更新できます。 これは、このような問題に対する最善の解決策のように思えますか。

  2. コメントの投稿問題 - デフォルトのWordPressコメントシステムを使用すると、新しいコメントが投稿に追加されるたびに、その投稿のCached/Staticページを re-built !にする必要があります。私が見たことから、私が見たCachingプラグインにはそれを可能にするオプションがあります。新しいコメントが投稿されるたびにページを再構築することができます。これは紙の上では良さそうに思えますが、私はそれがあなたが同時に同じ記事について複数のユーザーがコメントしているかもしれない高トラフィック/活発なサイトにおける悪夢であることを想像できます

    コメントの投稿考えられる解決策 - それで、コメントの問題の解決策として、新しいコメントが出るたびにキャッシュ/静的ページを単純に再構築するようにキャッシュプラグインを設定することができる解決策を述べました。私の懸念は、これが長期的にどれほどうまく機能するかということではないということでした。今、私がますます使用されていると思うもう一つの可能​​な解決策は、Disqus CommentsのようなJavascriptのソリューションか、または同様の解決策を使用することです。私は自分のコメントシステムのために私のすべてのコメントがいかなる第三者にも頼らないように望んでいたので、長い間私は本当にこれに反対していました。私はまだこの問題については垣根を見ていますが、私のサイトではDisqusのコメントを使用するように切り替えました。これまでのところ、かなりうまくいっています。私は他の可能な解決策にも寛容ですか?それともこれは本当に行くべき道だと思いますか?

サイト全体のサイドバー

  1. サイドバーの最近の記事問題 - サイト上のすべてのページでサイト全体に表示されるタブがサイドバーに表示されます。タブの1つにブログの最新の10件の投稿が表示されます。サイトのページ、新しい記事/投稿が追加されると、この "最新の投稿リスト"に新しい投稿が追加されたことを反映するようにサイトのすべてのキャッシュ/静的ページを再構築する必要があります。

    サイドバー最近の記事考えられる解決策 - ここでもまた、考えられる解決策を思いついた。私はJavascriptとAjaxを使ってこのコンテンツをCached/Staticページに読み込むことができたので、それらすべてを頻繁に再構築する必要はなく、最新の投稿を表示することができました。

    これは良い解決策のようですか?もっと重要なことには、この問題に対する別のより良い解決策または代替の解決策を考えることができますか?


まだ手を汚さないで、これが私のテーマをCache/Static Friendlyに変換することで今まで見てきたすべての可能な問題です。


更新

私はちょうど考えるために別の問題について考えました。そのページの投稿リストに収まる投稿が追加されるたびに、すべてのタグ/カテゴリおよびユーザーページを更新する必要があります。私はこれがすでにキャッシングプラグインの機能でなければならないと思います

14
JasonDavis

それで、多くの副質問があります、私はそれぞれに対処しようとします。

Views Counter Problem - 私はこのValue/functionをAjaxを使って走らせることができた。新しいCached/Staticページがロードされると、JavascriptはAjaxを使ってそのページのViewsカウンタを要求および更新できます。

完全に同意する:追加された利点:「重要な」コンテンツがロードを終えたときにajaxを介してロードすることが進むべき道です。ページの読み込み時間を短縮するために、できる限りのことをしてください。私は間違いなくこれをAjaxに取り入れたいと思います。

コメント投稿問題

これがすべて大きな問題になるとは思わない。しかし、またもやajaxです。 「メイン」コンテンツとは別にコメントをロードします。新しいコメントを定期的にプッシュする(Stackoverflowが行うように、またはTwitter.comがユーザーに警告し、クリックを待ってコメントストリームを更新するのを待つように)。

サイト全体のサイドバー

私は別のプラグインを使うでしょう: WP Widget Cache 、サイドバーの各ウィジェットのキャッシュ時間を設定することができ、通常のキャッシュプラグインでうまく動作します。あなたのケースでは、単にそれらのウィジェットのためのキャッシュを行わないために "0"を設定するか、または "10分"(まったくキャッシュを行わないよりはましです)。

2
pixeline

あなたがw3総キャッシュを使用しているならば、あなたはキャッシュされることからあなたのサイドバーのような特定のページを除外することができます。

WordPressの管理>パフォーマンス>ページキャッシュに移動し、これらのページをキャッシュしないの下のセクションを変更します。

Never cache pages W3 Total Cache
この例では、テーマのサイドバーファイルがキャッシュから除外されています。

5分から15分など、キャッシュされたページの有効期限を短く設定することもできます。キャッシュされたページは、初めての訪問者でセッションCookieを持っていない人々に最も影響を与えます。ページの「最も要求されている」キャッシュビューが初めて表示されるので、匿名の訪問者。

1
Damien