Wordpress - 标题()不起作用

时间:2014-07-25 16:34:39

标签: php wordpress

在我的标题中,我有这段代码:

<?php 
global $post;
$pgid = $post->ID;

if (is_user_logged_in() || is_page(344)) { //page 344 is the Login Page
 } else { 

$url = admin_url();

    header("Location: http://cherry.virtek-innovations.com/login-screen");
    die();
     } ?>

此代码应该将任何未登录的用户发送到登录页面,但是我收到此错误:

Warning: Cannot modify header information - headers already sent by (output 
started at /home1/virtek/public_html/cherry/wp-content/themes/twentytwelve/
resumen.php:2) in /home1/virtek/public_html/cherry/wp-content/themes/
twentytwelve/header.php on line 10

这是我在resumen.php文件中的代码

<?php 
get_header(); 

/*

    Template Name: Resumen

*/
?>

我不知道为什么它不会工作,我正在使用User Meta Pro插件,你们中的任何人在我的代码中发现了什么问题吗?或者知道任何其他方法有一个自定义登录页面,除非你登录,否则不会让你进入?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用wp_redirect()功能重定向吗?例如,将它放在主题的functions.php文件中:

function redirect_logged_out_users() {
    if ( ! is_user_logged_in() ) {
        wp_redirect( home_url() . '/login-screen/', 301 );
        exit();
    }
}
add_action( 'template_redirect', 'redirect_logged_out_users' );

这在template_redirect挂钩运行的点执行。那是之前将任何内容发送到浏览器,这样您就不会遇到此方法的“已发送标题”问题。

参考: http://codex.wordpress.org/Function_Reference/wp_redirect