2013-12-23 2 views
1

이 코드를 사용하여 WordPress 사이트에 쿠키를 설정하고 있습니다. 이 코드를 header.php에 넣으면 완벽하게 작동합니다. 그러나이 코드를 Separate template 파일에 넣으면 작동하지 않습니다. 헤더 파일의 코드 : (HTML 태그 전)WordPress 템플릿 파일에서 PHP setcookie() 함수가 작동하지 않습니다.

if (isset($_COOKIE['City'])) { 
setcookie('City', 0, -(3600*3600*3600)); 
setcookie('City', "Edmonton2", 3600*3600*3600); 
} 
else { 
setcookie('City', "Edmonton", 3600*3600*3600); 
} 

WP 템플릿 파일의 코드 (코드는 get_header() 함수 이전 인)

<?php 
if (isset($_COOKIE['City'])) { 
setcookie('City', 0, -(3600*3600*3600)); 
setcookie('City', "Edmonton2", 3600*3600*3600); 
} 
else { 
setcookie('City', "Edmonton", 3600*3600*3600); 
} 
?> 
<?php 
/* 
    Template Name: Community Landing Page 
*/ 
get_header(); ?> 

어떤 도움을 매우 높이 평가 될 것이다. 감사합니다 & 감사합니다

답변

7

문제는 기능에서 경로를 언급하지 않았기 때문입니다. 이 코드는 특정 페이지에 대한 쿠키를 생성합니다. 다음은 수정 된 함수입니다.

setcookie('City', "Edmonton43003", (time()+3600), "/"); 
8

출력을 시작한 후에 쿠키를 설정할 수 없습니다. 쿠키 및 기타 모든 HTTP 헤더 정보는 출력이 시작되기 전에 만 설정할 수 있습니다. 출력은 PHP 태그 앞에있는 빈 공간에서 실제 HTML 내용까지를 의미 할 수 있습니다.

본문에 쿠키를 넣지 않아도됩니다. 템플릿의 출력을 시작하기 전에 모든 로직을 수행해야합니다.

+0

HTML 태그와 그 작동 전에 header.php에 코드를 추가했습니다. 템플릿 파일에서 get_header() 함수를 호출하기 전에 추가했습니다. 또한 get_header() 함수를 제거한 다음 시작된 HTML 태그를 하드 코드하여 그 앞에 코드를 넣으려고 시도했지만 그 역시 작동하지 않았습니다. – akifquddus

+0

코드를 'echo "로 바꿉니다. 반향이 소스를 볼 때 가장 먼저 들리는 것이 아니며 작동하지 않으며 코드를 다시 정렬해야하는 경우 – exussum

+0

그냥 확인한 후 페이지의 첫 번째 사항입니다 . 또한 header.php에 echo "checking"을 넣고 출력으로 "blah blah checking"을 얻었습니다. 메아리로 "어쩌구"템플릿 파일에 있습니다. – akifquddus

관련 문제