2011-08-19 3 views
0

저는 지난 30 분 동안 이것을 정리하려고했습니다.WordPress header.php에 사용자 정의 PHP 포함 - 페이지가로드되지 않습니다.

가 나는 워드 프레스 테마 전체에 포함 할 파일, ue_variables.php이 파일의 내용은 다음과 같습니다

if(!empty($_SERVER['HTTP_REFERER'])) { 
    $url_referrer = $_SERVER['HTTP_REFERER']; 
    $explode = explode(".",$url_referrer); 
    $name_referrer = ucfirst($explode); 
} else { 
    $url_referrer = "default"; 
    $name_referrer = "default"; 
} 

date_default_timezone_set("UTC"); 
$time = date("H:i:s"); 
$date = date("j F Y"); 

나는 사용자가 변수를 에코 할 수 그래서 header.php에 포함 할 post (그들은 이미 Exec-PHP 플러그인 설정을 가지고 있으므로 문제가되지 않습니다).

처음에는 내가 그것에 대해 어리 석었고, WordPress 루트 폴더 (심지어는 header.php을 포함하지 않음)에서 포함하려고 시도했다가, 그때 나는 진정한 절대 상대방에 대한 잘못된 상대 링크를 바꿨고, 지금은 내 WordPress 페이지 포함의 지점에서 아래쪽으로 갈라진다.

예. 나는의 상단에 <?php include("/absolute/path/ue_variables.php"); ?>을 배치하고 전체 색인 페이지는로드되지 않습니다. 블로그를 맨 아래에 배치하고 블로그의 헤더 섹션 만로드합니다 (예 : 헤더 및 탐색).

왜 이런 일이 발생했는지에 대한 아이디어와 그것을 교정하기위한 대책은 크게, 크게 감사 할 것입니다 !! :)

+0

인쇄 할 PHP 오류 메시지가 있습니까? 서버가 오류 메시지를 인쇄하지 않도록 설정되어 있습니까? 아마 PHP가 파일을 찾을 수 없다고 생각합니다. 또 다른 가능성은 당신이 일부 워드 팩 변수를 쾅쾅 거리고 있다는 것입니다. 변수에 접두사, 특히 시간과 날짜를 추가하십시오. –

+0

오류 메시지가 인쇄되지 않고 내 서버가 오류 메시지를 인쇄하도록 설정되어 있습니다. 내가 파일을 수동으로 몇 번 이상 거기에 있는지 확인하고 절대 경로 (상대가 헤더를 찾을 수로 작동하지 않을 것이라고 참조되고있다.FTP를 통해 WP 폴더를 통과했을 때 PHP, 플러스 가능한 한 최상위 레이어에서 많은 물건을 유지하고 싶습니다). 나는 또한 변수 이름이 아니라는 것을 확신합니다. 모든 변수를 변경했습니다. 또한, 내가 ux_variables.php를 포함하지 않았을 때,'$ time = x;'와'$ date = x;'를 꺼내서'header.php'에 넣었을 때, – Avicinnian

+0

그것은 작동하지 않았지만, 변수에 게시물에 포함되면 잘 돌아갔습니다. – Avicinnian

답변

0

오류 메시지가 있습니까? 상단에 놓으면 전체 페이지가로드되지 않습니다. 하단에 넣을 때 페이지로드가 발생하지만 스크립트가로드되지 않으면 처음에는 /absolute/path/ue_variables.php에 오류가있을 수 있다고 생각합니다.

이렇게 디버깅 해보십시오. header.php에 코드를 /absolute/path/ue_variables.php 인라인을 넣고, 단지 그것을 제거 :

date_default_timezone_set("UTC"); 
$time = date("H:i:s"); 
$date = date("j F Y"); 

시험에게 그것을. 작동하는 경우 if-else 문을 입력하십시오. 코드 블록을 블록 단위로 잘라내어 오류가 표시 될 수있는 위치를 좁 힙니다.

+0

분명히 오류는 아니며, 전에도 전체 스크립트를 실행했지만 문제없이 마지막 변수를 반향했습니다. 또한, 나는 그것을 이미 벗겨서 문제없이 배치했는데, 이는 포함에서 발생한다는 것을 의미합니다 (그러나 나는 거짓된 상대 경로를 가졌을 때, 페이지의 나머지 부분 인 예쁜 많은 것을 포함하지 않는 것). 정말 어리석은 일은'$ time = x;'와'$ date = y;'가'header.php'에 놓여 있고 아무런 문제없이로드되었을 때 작동하지 않는다는 것입니다. 그러나 변수와 값을 게시물에 배치하면 올바르게 작동합니다. – Avicinnian

0

WordPress가 기존의 포함 기능을 사용하여 스크립트를 포함하지 않는다는 것을 이해합니다. 대신 WordPress는 후크를 사용하고 내장 된 기능을 사용합니다. 나는 워드 프레스에 자신이 없으므로 나는 너를 도와 줄 수 없다. 그러나 나는 너를 올바른 방향으로 가리킬 수있다. 자녀 테마 또는 부모를 사용하고 있습니까? 자식 테마를 사용하는 경우 헤더 파일의 복사본을 만들고 header-pain과 같은 이름으로 바꿀 수 있습니다. 그런 다음 새 헤더를 포함시키고 header() 함수를 찾으려는 페이지 파일의 복사본을 만듭니다. 그런 다음이 함수를 새 헤더의 매개 변수로 전달합니다. 그래서이 예제에서 이러한 함수는 다음과 같이 보일 것입니다. get_header ('pain'); 자식 테마를 사용하지 않을 경우 효과적 일 수 있기를 바랍니다. 어느 쪽이든 나를 알려주십시오

+0

입력 해 주셔서 감사합니다. :) 방금 생각해 봤지만 PHP의'include()'함수로 작성한 PHP를 죽이는 것이 이상해 보였으므로 빠른 검색을 통해 http://codex.wordpress.org/Include_Tags를 발견했습니다. 바꾸어 말하면 WP에는 특정 템플릿 파일을 포함하는 자체 기능이 있습니다 (예 : 'header.php','footer.php' 등이 있습니다. 지금 당장 발사 할 함수'get_template_part()'가 있습니다. – Avicinnian

+0

불행히도, 그것은 작동하지 않았다 :(. – Avicinnian

0

태그가 포함되어있을 때 그 태그가 포함되어있을 때 그 코드가 어떤 종류의 코드인지 알 수 없습니다. 별도의 파일을 포함하려는 경우 여는 php 태그를 추가해야합니다 (닫는 방법이 아님). 그렇지 않으면 코드 주위에 php 태그를 열고 추가하여 테마 폴더에있는 header.php 파일에 직접 배치하십시오.

관련 문제