首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在简单的本地Avatars WordPress插件成功上传后重新加载页面?

如何在简单的本地Avatars WordPress插件成功上传后重新加载页面?
EN

Stack Overflow用户
提问于 2014-08-08 10:18:58
回答 1查看 306关注 0票数 0

我正在使用简单的局部化身来允许我的博客作者上传一个化身。

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

否则,我如何在成功上传后刷新页面?

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

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

代码语言:javascript
复制
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 );

但这会导致可怕的“报头已经发送”错误。

EN

回答 1

Stack Overflow用户

发布于 2014-08-08 11:39:38

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

代码语言:javascript
复制
/**
 * 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 );

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25201221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档