尝试使用UPDATE_OPTION_{$OPTION}挂钩重新加载页面,导致无限重新加载

时间:2019-10-03 作者:Wade Koehn

更新此选项后,如何重新加载页面?我在下面尝试的是导致无限页面重新加载循环。我还尝试了添加if($old\\u value!==$)检查,但仍然没有成功。

add_action( \'update_option_kdc-site-functions\', \'kdc_reload_admin\', 10, 2 );
/**
 * Reload admin page after settings page is saved.
 */
function kdc_reload_admin( $old_value, $value ) {
    ?>
    <script type="text/javascript">
    document.location.reload(true);
    </script>
    <?php
}

1 个回复
最合适的回答,由SO网友:Wade Koehn 整理而成

发生这种情况的原因是metabox。由于某种原因,io会在保存选项之前触发页面刷新。这意味着页面刷新后,新选项没有时间生效。我现在的解决方法是使用标题(“刷新:0”),它完成了我在原始帖子中尝试的操作,但不会导致像javascript刷新方法那样的刷新循环。只需在成功保存选项后强制另一个页面刷新即可。