it-swarm-ja.com

WP-e-CommerceとW3-Total-Cacheの統合問題

私のショッピングカートはw3 total cacheでキャッシュされています。これは予想されるデフォルトの動作です。問題は、これに対する簡単な解決策が見つからないことです。

ショッピングカートをほぼすべてのページに表示しているので、拒否されたクッキーなどを使用することはできません。 cart_widget.phpのような単一のphpファイルをキャッシュしないようにw3 total cacheに指示することは可能ですか?それとも他の回避策?

プラグインはパラメータ付きのGETリクエストをキャッシュしないため(デフォルトで)、AJAXを介してカートを読み込む可能性があることを私は知っています。それでも、私はその余分な要求を避けたいと思います。

編集:また、私は製品を編集したときにW3合計キャッシュがページを再生成されていない、単一のページのためにキャッシュを空にするようにW3合計キャッシュに指示する簡単な方法はありますか?

2
Lombo

W3 Total Cacheは非常に高度なプラグインで、ほとんどあらゆる状況に対処する方法が組み込まれています。

ページをキャッシュから除外するには、以下のいずれかのコマンドを使用します。

define('DONOTCACHEPAGE', true);
Disables page caching for a given page.
define('DONOTCACHEDB', true);
Disables database caching for given page.
define('DONOTMINIFY', true);
Disables minify for a given page.
define('DONOTCDN', true);
Disables content delivery network for a given page.
define('DONOTCACHCEOBJECT', true);
Disables object cache for a given page.

W3 Totalがあなたの商品編集のキャッシュを空にするためには、商品が保存されるときに以下の関数をフックすることができます:

w3tc_pgcache_flush_post($post_id);

フラグメントキャッシュを実装するには、キャッシュしたくない関数やコード行をmfuncでラップします。

 Example 1:
<!-- mfunc any PHP code --><!-- /mfunc -->
Example 2:
<!-- mfunc -->any PHP code<!-- /mfunc -->
Example 3:
<!--MFUNC           -->
                                      echo Rand();
<!--/mfunc -->
Example 4:
<!-- mclude path/to/file.php --><!-- /mclude -->
Example 5:
<!-- mclude -->path/to/file.php<!-- /mclude -->
6
Chris_O

W3は、この種の他のすべてのプラグインと同様に、ページ出力を静的ファイルにキャッシュします。基本的に、静的ファイルの一部を非静的にすることはできません。

私はこの分野の専門家ではありませんが、結局のところクッキーを調べることをお勧めします。たとえば、空のカートがあるページのキャッシュを残すように試みることができますが、いっぱいになったカートにクッキーを設定させ、そのキャッシュをスキップすることができます。

0
Rarst