我有一个使用购物车插件(Shopp)、我编写的插件和W3 Total Cache的网站。
在我的插件中,如果用户的购物车中有任何项目,我想确保W3 Total Cache不会提供任何缓存页面,但是,我似乎找不到合适的挂钩来定义将禁用W3 Total Cache缓存的常量。这是我插件文件顶部的内容(shopp\\u init函数在wordpress期间运行init
):
// do not cache anything if items are in cart
add_action(\'shopp_init\', function(){
if (shopp_cart_items_count() > 0)
{
define(\'DONOTCACHEDB\', true);
define(\'DONOTCACHEPAGE\', true);
define(\'DONOTCACHEOBJECT\', true);
}
});
似乎如果
DONOTCACHEPAGE
一个页面只检测一次常量,它不会再次检查它。因此,如果我的购物车中有任何物品,它将永远不会缓存任何东西。同样,如果我的购物车有一次是空的,它将始终允许缓存所有页面。
如何动态禁用w3 total cache?
SO网友:cobcena
您可以尝试使用此类型函数:
add_action( \'wp_print_scripts\', \'my_deregister_javascript\', 100 );
if ( !is_page(\'Events\') ) {
wp_deregister_script( \'wpng-calendar\' );
wp_deregister_script( \'date-js\' );
wp_deregister_script( \'thickbox-js\' );
wp_deregister_script( \'jquery-js\' );
wp_deregister_script( \'wiky-js\' );
}
}
在上找到它
this website您必须根据需要修改Nandler,我发现W3TC处理程序是:
TotalCacheAdmin.php (8 hits)
Line 614: wp_enqueue_style(\'w3tc-options\');
Line 615: wp_enqueue_style(\'w3tc-lightbox\');
Line 624: wp_enqueue_script(\'w3tc-metadata\');
Line 625: wp_enqueue_script(\'w3tc-options\');
Line 626: wp_enqueue_script(\'w3tc-lightbox\');
Line 633: wp_enqueue_script(\'jquery-ui-sortable\');
Line 637: wp_enqueue_script(\'jquery-ui-dialog\');
Line 642: wp_enqueue_script(\'w3tc-options\');