我正在构建一个自定义模板,该模板使用它创建的刀片模板文件缓存。在工作时,我在定制器中进行更改,对为什么没有显示更改感到困惑。我花了一段时间才弄明白这是因为刀片文件被缓存了,所以布局更改没有生效。
因此,在将来,我希望能够在Wordpress自定义程序中有一个“清除缓存”按钮,单击该按钮可以删除缓存目录。但我不知道怎么做。
这个主题是建立在“Sage 9”Wordpress模板的基础上的,以备不时之需。
这是我在/app/admin中的自定义控件(可能正确,也可能不正确)。php
$wp_customize->add_control(
new \\WP_Customize_Control(
$wp_customize,
\'clearcache\',
[
\'label\' => __( \'Clear Cache\', \'starcresc\' ),
\'section\' => \'layout\',
\'settings\' => \'clearCache\',
\'type\' => \'button\',
\'choices\' => [
\'0\' => __( \'No (Default)\' ),
\'Clear Cache\' => __( \'Yes\' ),
]
])
);
这是我添加到函数中的函数。php文件,该文件应删除存储在siteurl/wp content/uploads/cache中的缓存文件
function sc_clearcache() {
return
$upload_dir = wp_upload_dir();
$files = glob($upload_dir . \'cache/*\'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file))
unlink($file); // delete file
}
};
但我不知道如何将两者连接起来,并使按钮实际调用该函数。
编辑:
/* Clear the Cache */
function sc_clearcache() {
$upload_dir = wp_upload_dir();
$files = glob($upload_dir . \'cache/*\'); // get all file names
foreach($files as $file){ // iterate files
if(is_file($file)) {
unlink($file); // delete file
}
}
}
do_action( \'customize_save_after\', \'sc_clearcache\' );