为什么wp_die()不能与wp_reDirect一起使用,而it()可以工作

时间:2020-11-19 作者:Raashid Din

我有一个关于WordPress行为的问题。我编写了一个函数,可以在调用时将用户重定向到WordPress中的页面。我用过它add_query_arg().这是我创建的函数。

function wg_uep_license_fail_redirect( $message ) {
        update_option( \'wg_uep_license_status\', \'invalid\' );

        if ( ! empty( $message ) ) {
            $redirectUrl = admin_url( \'admin.php?page=wp_uep\');
            $finalizedUrl = add_query_arg( array(
                \'license_activation\'    => \'false\',
                \'message\'               => urlencode( $message ),
            ), $redirectUrl );
            wp_redirect( $finalizedUrl );
            // wp_die();
            exit;
        }
    }
如您所见,该函数有一个消息参数。现在如果我这样调用函数。

$message = \'hello dead\';
wg_uep_license_fail_redirect( $message );
如果我使用exit 但如果我取消注释wp_die() 并移除exit. 似乎什么都没用。

现在我的问题很简单,区别是什么。WordPress如何处理wp_dieexit?

NOTE: die() also works but not wp_die().

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

根据您的背景,wp_die() 将表现不同。这意味着,如果您在AJAX请求中,它将执行其他操作,而不是说是标准http请求。

因此,这取决于您实际调用它的位置,这可能会有所不同。假设您在一个正常的http请求中,那么它将调用_default_wp_die_handler() 除了添加标题,它还输出HTML,这不是您想要的。

只要坚持exit (或die), 这也是recommended in the docs.

相关推荐

Functions.php上未定义$_GET和&_REQUEST索引

我最近尝试学习为我的自定义主题创建一个主题选项页面,这是按照stackoverflow和其他资源的教程进行的。但脚本显示错误if ($_GET[\'page\'] == basename(__FILE__)) { if (\'save\' == $_REQUEST[\'formaction\']) { foreach ($options as $value) { if( isset( $_REQUEST[ $value[\'id\']