每当我使用wp_redirect(plugins_url(\'account/login\'));
在shortcode函数中,我得到以下错误:
Warning: Cannot modify header information - headers already sent by ...
有没有办法从那里重定向?我想我会回应一些执行重定向的Javascript,但我想知道是否会有这样的服务器端实现。每当我使用wp_redirect(plugins_url(\'account/login\'));
在shortcode函数中,我得到以下错误:
Warning: Cannot modify header information - headers already sent by ...
有没有办法从那里重定向?我想我会回应一些执行重定向的Javascript,但我想知道是否会有这样的服务器端实现。为什么它需要是一个短代码?看起来像XY Problem.
您已经在编辑屏幕中手动插入了短代码。改为使用自定义字段,并在可以实际执行重定向的地方挂接。
add_action( \'template_redirect\', function(){
global $post;
$redirect = get_post_meta( $post->ID, \'redirect\', true );
if( $redirect )
{
wp_redirect( admin_url( \'profile.php\' ) );
exit;
}
});
要重定向到另一个页面,需要设置http标头。要设置标题,它必须是输出到浏览器的第一件事。
当某些内容已经输出到浏览器时,您试图设置标题,这就是为什么您会收到警告,而重定向不起作用。
您需要更改实现,以便在任何内容得到输出之前触发重定向。所以你应该把它挂在init
或在输出之前发生的任何其他操作。
这也可能是由于另一个插件错误地输出了不应该输出的内容。