2017-12-05 11 views
0

일부 코드가 태그 범주 및 기타 페이지와 같은 특정 페이지에 표시되는 것을 피하려고합니다.페이지 조건은 워드 프레스에서 ajax 호출 후 거짓이됩니다.

if(!is_front_page() && !is_search() && !is_page('article', 'preview') && !is_category() && !is_tax() && !is_tag()){ 
//code goes here.. 
} 

사용자가 페이지에 착륙 할 때 상태가 양호하게 작동합니다. 그러나이 페이지는 아약스를 사용하여 게시물을 검색하고이 상황이 발생하면 조건이 거짓으로되고 페이지에 불필요한 코드가 표시됩니다.

왜 이런 일이 발생합니까? 누구든지 이것에 대해 어떤 생각을 가지고 있습니까? 모든 종류의 도움을 주시면 감사하겠습니다.

답변

0

요청이 ajax 요청인지 확인하기 위해 if 문에 추가 제한 조건을 추가해야합니다. 이것은 모든 서버에서 사용되는 것은 아니지만, 아파치를 사용한다면 잘 작동 할 것입니다.

if(empty($_SERVER['HTTP_X_REQUESTED_WITH']) && !is_front_page() && !is_search() && !is_page('article', 'preview') && !is_category() && !is_tax() && !is_tag()){ 
//code here 
} 

위의 내용은 아약스 요청이 아닌 경우에만 해당됩니다. 이 PHP 파일에 ajax 요청이 이루어진 경우 true이어야하며 이에 따라 ajax 요청인지 확인하고 그에 따라 처리 할 수 ​​있습니다.

0

위와 같은 조건으로 Ajax 응답 데이터를 얻어야합니다.

또는 Ajax에서 하나의 변수 (인수)를 전달할 수 있습니다. 코드에서 해당 코드를 표시하지 않으려는 페이지, Ajax에서 전달할 시간 및 Ajax 함수가 해당 변수를 인수로 가질 때) 당신이 위의 조건을 추가해야 할 때마다 (빈) 인수를 얻지 않으면 모든 페이지에 대해 수행해야합니다.

더 나은 방법은 페이지 조건을 얻을 수있는 방법으로 Ajax에 대한 응답을 얻는 것입니다.