回答:
キャッシュをフラッシュしたい場合は、それを行うことができます:プラグインにはそのための機能があります
<?php
flush_pgcache() //page cache
flush_dbcache() // database cache
flush_minify() // minify cache
flush_all() //all caches
?>
そして、あなたはこのように呼び出す必要があります:
<?php
$w3_plugin_totalcache->flush_all();
?>
それは基本的に「プログラムでキャッシュを更新する」というタイトルの質問に対する答えです
W3 Total Cacheは、フラグメントキャッシングをサポートしています。FAQから:
How do I implement fragment caching?
Edit your templates to with the following syntax to ensure that dynamic features remain so:
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 -->
<?php ?>
タグと終了タグが一致していません。私はまだこれらを使用していなかったので、表示する実用的なスニペットはありません。
?><!-- mclude -->functions2.php<!-- /mclude --><?php
になります(私は思う:)
w3tc v0.9.3の投稿IDで1つのページをフラッシュするには、これが機能することがわかりました。
if (function_exists('w3tc_pgcache_flush_post')){
w3tc_pgcache_flush_post($post_id);
}
w3-total-cache-api.php
、W3TCのプラグインディレクトリにあります。
Bainternetのソリューションは、私には役に立たなかったようです。
admin_initアクションで読み込まれたプラグイン内でこの代替スニペットを正常に使用しています:
// Clear all W3 Total Cache
if( class_exists('W3_Plugin_TotalCacheAdmin') )
{
$plugin_totalcacheadmin = & w3_instance('W3_Plugin_TotalCacheAdmin');
$plugin_totalcacheadmin->flush_all();
echo __('<div class="updated"><p>All <strong>W3 Total Cache</strong> caches successfully emptied.</p></div>');
}
うまくいけば、これはそこに誰かを助ける。
プラグインでは上記のいずれも機能しませんでした。しかし、これはうまくいきました!w3tcのバージョン0.9.2.4で動作することを確認しました。
if (function_exists('w3tc_dbcache_flush')) { w3tc_dbcache_flush(); }
"$ wpdb-> get_results(" SELECT sb_settings
。f_fb_app_id
、sb_settings
。f_fb_secret
FROM sb_settings
");"を実行しましたが、値f_fb_secretとf_fb_app_idが毎回同じであることに驚きました。明らかに、クエリの結果をキャッシュするw3tcでした。そこで、sb_settingsテーブルの変更ページにdbcacheフラッシュを追加しました。
ページキャッシュをクリアする場合は、代わりにw3tc_pgcache_flushを使用します。
このスニペットを使用して、キャッシュがオンかオフかに関係なく、PHPが実行されるようにします。はい、関数を2回作成/呼び出す必要があります。
<!-- mfunc echo 'caching ON'; --><?php echo 'caching OFF'; ?><!-- /mfunc -->
(私は思う)これはそれがどのように機能するかです:
<!-- mfunc echo "hello?"; -->
人々があなたのPHPを見ることがどれだけ幸せであるかに応じて、これを覚えておいてください(キャッシュがオフのときのみ起こります)。