我想知道是否有人可以进一步建议我解决我的问题。我的插件的一部分存储日志文件用于调试目的。我已经使用jquery和wp_localise_script在管理页面的(div#log)中成功显示了它们。我有一个删除这些日志的按钮,但不确定如何处理。我觉得ajax在这里可能会派上用场,但不确定从哪里开始。
这是我的代码的相关部分:
admin_enqueue_scripts(操作)
$args = array(get_option('wow_tweets_log'));//log files fetched from wp_options table
wp_enqueue_script('wow_tweet');//registered earlier on with jQuery dependency
wp_localize_script('wow_tweet', 'wow_vars', $args);
管理员页面
<tr><th scope="row"><strong>Debugging</strong></th><td>
<div id="debug" class="button-primary">Debug</div><!--debug button shows logs-->
<div id="hide_debug" class="button-secondary">Hide</div><!--debug button hides logs-->
<div id="clear_log" class="button-secondary">Empty Log</div><!--Press to delete logs-->
</td></tr>
<tr><th scope="row"></th><td><div id="log"><!--Logs show here--></div></td></tr>
Java脚本
jQuery(document).ready(function() {
var debug_show = jQuery('#log').hide();//hides log by default
jQuery('#debug').click(function(){//on click shows logs files in div#log
for (var i = 0, l = wow_vars.length; i < l; i++) {
var data = wow_vars[i];
}
jQuery('#log').show().html(data);
});
jQuery('#hide_debug').click(function()
{
debug_show.hide();
});
});
清除日志的操作
function clear_log(){
delete_option('wow_tweets_log');//am stuck on how to invoke this
/*die(); would go at the end if ajax used*/
}
add_action('clear_log','clear_log');
到目前为止,该脚本可以显示所有日志文件,现在我需要的是单击#clear_log时将其删除。我知道在页面加载后在init上插入do_action会立即将其删除,这使我的JavaScript无法使用,因此我猜唯一的选择就是ajax!我是否需要向wp_localize_script()添加另一个引用?任何帮助,将不胜感激。