Wp_reDirect()在自定义模板文件中不起作用 时间:2017-09-21 作者:Rajnish Suvagiya <?php /** * Template Name: Custom Page Template */ get_header(); if(is_user_logged_in()){ // content for login user } else { // https://developer.wordpress.org/reference/functions/wp_redirect/ // wp_redirect() does not validate that the $location is a reference to the current host // That means this function is vulnerable to open redirects if you pass it a $location supplied by the user. // So use it only when navigating to another website wp_safe_redirect(\'/wp-login.php\'); exit; } ?> 3 个回复 最合适的回答,由SO网友:Rarst 整理而成 重定向是通过输出HTTP头来执行的,wp_redirect() 只需在其上添加一些位,以实现灵活性。标题仅在任何和所有输出到页面之前使用,因为这是HTTP响应的结构。假设它可以在模板中工作,如果您确保它在任何输出之前启动。实际上,在到达任何模板/输出之前,通常在适当的挂钩上处理重定向。常用的钩子是template_redirect. SO网友:Wh0CaREs 据我所知,您可以在将内容发送到浏览器之前使用wp\\u重定向。你应该用钩子。但是您可以使用PHP头函数if ( TRUE ) { header( "Location: " . home_url() ); die(); } 但我不能百分之百确定这个标题(位置)是否会让你对“标题已经发送”产生问题 SO网友:Dev02ali try this code,get_header(); global $current_user; get_currentuserinfo(); if(is_user_logged_in()){ // content for login user } else { $url = \'http://example.com\'; wp_redirect($url); exit(); } 结束 文章导航