Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在简单的本地化身WordPress插件中成功上传后重新加载页面?_Javascript_Php_Jquery_Wordpress - Fatal编程技术网

Javascript 如何在简单的本地化身WordPress插件中成功上传后重新加载页面?

Javascript 如何在简单的本地化身WordPress插件中成功上传后重新加载页面?,javascript,php,jquery,wordpress,Javascript,Php,Jquery,Wordpress,我用它来允许我的博客作者上传一个头像 我的目标是在成功上传后刷新页面。我的第一个想法是查看simple-local-avatars.php源代码中的动作挂钩。我希望在编辑用户档案更新方法的末尾会有一个钩子,比如阿凡达上传成功,但是没有类似的。所以我需要找到另一种方法来刷新页面 成功上传后,我还可以如何刷新页面 更新:只是让我的问题更清楚一点,我的问题不是如何重新加载页面,我的问题是如何仅在上传成功时重新加载页面。例如:上传失败时,我不想重新加载 更新2:所以我的下一次尝试是这样做: functi

我用它来允许我的博客作者上传一个头像

我的目标是在成功上传后刷新页面。我的第一个想法是查看simple-local-avatars.php源代码中的动作挂钩。我希望在编辑用户档案更新方法的末尾会有一个钩子,比如阿凡达上传成功,但是没有类似的。所以我需要找到另一种方法来刷新页面

成功上传后,我还可以如何刷新页面

更新:只是让我的问题更清楚一点,我的问题不是如何重新加载页面,我的问题是如何仅在上传成功时重新加载页面。例如:上传失败时,我不想重新加载

更新2:所以我的下一次尝试是这样做:

function simple_local_avatar_reload() {
    $url = 'whatever the current page is';
    wp_redirect( $url );
    exit();
}
add_action( 'edit_user_profile_update', 'simple_local_avatar_reload', 99 );

但这会导致可怕的“headers ready sent”错误。

我的解决方案是有条件地启用输出缓冲,然后在编辑用户配置文件更新完成后执行页面刷新。例如:

/**
 * Enable output buffering.
*/
function output_buffer() {
    if ( isset ( $_POST['submit'] ) )
        ob_start();
}
add_action( 'init', 'output_buffer' );

/**
 * Refresh page after avatar upload.
*/
function simple_local_avatar_reload() {
    header( 'Location: ' . $_SERVER['REQUEST_URI'] );
}
add_action( 'edit_user_profile_update', 'simple_local_avatar_reload', 99 );
注意:即使上载失败,也会执行重新加载。但除非我修改插件的核心(我不想做),否则我将不得不使用它来解决问题