我有一个插件可以在_transients中保留HTML代码段。现在,我希望能够让用户通过单击按钮删除所有相关的瞬变。我已经设法创建一个按钮,向options.php页面发送正确的请求,获取请求,并执行查询,但问题是我留在/options.php,我想重定向到我的插件页面。以下是代码的相关部分:
function fbClearTransients(){
global $wpdb, $_wp_using_ext_object_cache;
if(!empty($_POST["fb-clear-transient"]) && intval($_POST["fb-clear-transient"]) == 1) {
$sql = "DELETE FROM $wpdb->options WHERE option_name LIKE '%_transient_fb_%'";
$clean = $wpdb -> query( $sql );
}
}
function fbClearCache() {
$clear = fbClearTransients();
}
add_action('admin-init', 'fbClearCache');
[...]
<form action="options.php" method="post">
<input type="hidden" name="fb-clear-transient" value='1'>
<?php submit_button( __('Clear cache'), 'secondary', 'fb_clear_trans_button', false ); ?>
</form>
所以,总结一下:查询有效,一切正常,除了我没有重定向回我的插件页面,就像初始保存按钮一样 - 保存设置的那个。
答案 0 :(得分:0)
鉴于我已经修改了原始查询,这会将我带到admin.php?page = myplugin,我需要以某种方式告诉系统我想要在那里结束,所以简单地添加:
header('Location: admin.php?page=my-plugin');
为我修好了。