如何在Simple Local Avatars WordPress插件中成功上传后重新加载页面?

时间:2014-08-08 10:18:59

标签: javascript php jquery wordpress

我使用Simple Local Avatars允许我的博客作者上传头像。

我的目标是在成功上传后刷新页面。我的第一个想法是查看动作挂钩的simple-local-avatars.php源代码。我希望在avatar_upload_success方法的末尾附近会有edit_user_profile_update之类的钩子,但是没有类似的可用。所以我需要找到另一种刷新页面的方法。

成功上传后如何刷新页面?

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

更新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 );

但是这会导致已经发送的可怕标题'错误。

1 个答案:

答案 0 :(得分:0)

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

/**
 * 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 );

注意:即使上传失败,也会执行重新加载。但这是一个解决方法我将不得不运行,除非我修改插件的核心(我不想这样做)。