WP_REDIRECT和发送变量

时间:2013-08-05 作者:Derfder

如何使用wp\\u redirect()从函数发送一些变量。我的主题文件夹中的php文件?

if ( $post_id ) {
    $variable_to_send = \'1\';
    wp_redirect( home_url(), $variable_to_send );
    exit;
}
在主页上,我将捕捉if-else条件中的变量,以显示一些确认或不确认,这取决于$variable_to_send = \'1’或不是。

如何在WordPress中做到这一点?

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

恐怕你不能这样做。

wp_redirect 是一种发送标题的奇特方式Location 该函数的第二个参数是请求状态,而不是自定义变量。(404、301、302等)。

您可以发送一些变量作为get参数。所以你可以这样做:

if ( $post_id ) {
        $variable_to_send = \'1\';
        wp_redirect( home_url() .\'?my_variable=\'.$variable_to_send );
        exit;
}
然后您可以将这些变量用作$_GET[\'my_variable\'] 或者将其注册为自定义get变量。

SO网友:brianjohnhanna

这次聚会迟到了,但“Wordpress方式”会使用add_query_arg 像这样:

if ( $post_id ) {
    wp_redirect( esc_url( add_query_arg( \'variable_to_send\', \'1\', home_url() ) ) );
    exit;
}
这将启动重定向到http://my.website/?variable_to_send=1. 然后,您可以在主页(或博客页面,取决于您的home_url() 通过访问$_GET[\'variable_to_send\'] 在PHP代码中。

如果你想在functions.php, 确保钩住init 或者类似的早期钩子,否则您将收到“Headers ready sent”错误。

希望这能帮助那些偶然发现这篇文章的人。

结束