2015-11-25 54 views
0

要求: 模板中的標題之前獲得輸出我有一個以下腳本來鎖定Wordpress頁面。當我應用於特定模板時,它工作正常。因此,我不是在17個不同的模板上添加腳本,而是使用!is_front_page()聲明將其放在header.php文件中,因此腳本應該可以在除主頁外的所有頁面上運行。WordPress的如何使用header.php

問題:腳本只有在第一行沒有任何空格的情況下才放在頁面的最頂端,否則會引發錯誤(警告:不能修改標題信息 - 標題)。

錯誤在我的情況下的原因:正如我前面提到的,我把以下腳本放在header.php文件中。所以錯誤顯示,因爲這條線<?php get_header(); ?>這是在模板文件(和下面的代碼必須在<php get_header(); ?>之前。所以我的問題是,是否有任何好轉,我們可以做以下腳本或我需要把?在所有模板腳本上的第一行手動

<?php 
     if(!is_user_logged_in()) 
     $redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI']); 
     wp_redirect($redirect); 
?> 
+0

只要發生任何輸出,連接就會從發送「標題」信息變爲發送「正文」信息。重定向使用標題信息告訴用戶瀏覽器該頁面實際上可以在其他地方找到。因此,您只能在任何主體獲得輸出之前重定向用戶。 – samlev

回答

1

你可以在你的functions.php試試這個 - 掛鉤代碼爲WordPress的鉤所以它使用的頭被稱爲等之前...這意味着它得到

function password_protected() { 
    if (!is_user_logged_in()) { 
     $redirect = home_url() . '/wp-login.php?redirect_to=' . urlencode($_SERVER['REQUEST_URI']); 
     wp_redirect($redirect); 
    } 
} 
add_action('init', 'password_protected'); 

更新致謝@rnevius

+1

'init'或'parse_request'掛鉤會更合適(也更快)。不需要多次掛鉤。 – rnevius

+0

完美,偉大的感謝傢伙。 –

相關問題