코드가 작동하지 않는 24가지 이상의 이유 및 해결 방법
게시 됨: 2013-08-21나는 항상 코드가 작동하는지 먼저 테스트하지만 코드가 손상되지 않았음에도 나 자신과 코드를 사용하는 다른 사람들 모두에게 때때로 작동하지 않는 많은 이유가 있습니다.
다음은 코드가 작동하지 않는 몇 가지 이유 목록입니다.
- 브라우저 캐시를 지우는 것을 잊었습니다 . 브라우저가 실제로 이전 코드를 포함하는 이전 버전의 페이지를 표시하고 있기 때문에 CSS를 변경하고 실제로 변경했을 때 작동하지 않는다고 생각할 수 있습니다. 확인하려면 브라우저 캐시를 지우십시오.
- 서버 캐시를 지우지 않음: 일부 Managed Hosting 공급자는 매우 공격적인 서버 측 캐싱을 사용합니다. WPEngine은 CSS 변경 사항이 사이트에 표시되기까지 실제로 며칠이 걸릴 수 있음을 의미한다는 것을 알고 있습니다. 실제로 작동하지만 프런트 엔드에서 변경 사항을 볼 수 없기 때문에 작동하지 않는다고 생각하는 이러한 변경을 수행할 수 있습니다. 서버 캐시를 지우고 서버 측 캐싱 또는 캐싱 플러그인을 사용하는 코드를 로컬에서 테스트하십시오.
- CSS 코드를 함수 파일에 붙여넣음: CSS 코드는 서버에 설치된 PHP 프로세서에서 읽음을 의미하는 여는 PHP 태그를 포함하는 함수 파일에서 제대로 작동하지 않습니다.
- 스타일 시트에 PHP 붙여넣기 : PHP 코드는 서버에 설치된 PHP 프로세서가 아니라 브라우저에서 읽는 .css 파일에서 작동하지 않습니다.
- 머리글 및 바닥글 스크립트에 PHP 또는 CSS 붙여넣기: 머리글 및 바닥글 스크립트 상자가 포함된 테마는 PHP 스크립트가 아닌 Google Analytics 추적 및 라이브 채팅 스크립트용 Javascript를 쉽게 추가할 수 있도록 합니다.
- 웹 페이지에서 복사하여 테마 편집기에 붙여넣습니다. 아포스트로피가 회전하여 사이트를 깨뜨리는 죽음의 흰색 화면을 초래할 수 있는 매우 일반적인 실수입니다. 항상 원시 코드를 복사하고 메모장++과 같은 텍스트 편집기를 사용하여 파일 끝에 붙여넣습니다.
- 모든 코드를 복사하지 않음: 클래스를 포함하지 않거나 닫는 괄호가 누락된 CSS 코드 블록을 복사하면 코드가 작동하지 않습니다. 따라서 대괄호나 세미콜론을 뒤에 남겨두는 것이 유일한 문제인 경우 코드가 별거 아니라고 생각할 수 있습니다.
- 모든 코드를 붙여넣지 않음 : 위와 동일하며 가끔 발생합니다.
- 테마에서 이전 후크를 사용할 때 새 후크 사용: 새 사이트에서 여전히 이전 XHTML 마크업을 실행하는 사이트에 루프 후크를 포함하는 코드를 사용하면 작동하지 않습니다. 코드는 이전 사이트에서 작동하므로 손상되지 않습니다. 그러나 HTML 5에서는 작동하지 않습니다.
- 테마에서 새 후크를 사용할 때 이전 후크 사용: 위와 동일
- 코드의 클래스를 지원하지 않는 이전 브라우저 사용: 일부 이전 브라우저는 특정 CSS 클래스를 지원하지 않습니다. 즉, 코드가 작성된 내용을 수행하지 않습니다. 여러 브라우저를 설치하여 코드를 테스트하거나 브라우저 간 호환성을 위한 무료 온라인 도구를 사용할 수 있습니다.
- 코드의 클래스를 아직 지원하지 않는 최신 브라우저 버전 사용: 일부 새 브라우저는 일부 CSS 클래스를 지원하지 않습니다. 즉, 코드가 이전 브라우저에서 작동하지만 베타를 사용하기 때문에 그렇지 않다고 생각할 수 있습니다. 버전 또는 방금 출시된 최신 버전.
- 여는 PHP 태그를 복사하여 함수 파일에 붙여넣기: PHP 스니펫에는 일반적으로 여는 PHP 태그가 포함되지만 이미 해당 태그가 포함된 함수 파일에 붙여넣으면 안 됩니다. 태그를 제거하면 쉽게 해결할 수 있는 오류 메시지가 표시되고 사이트가 중단됩니다. 이것이 WordPress 편집기를 사용하는 대신 텍스트 편집기를 사용하여 코드를 실제 파일에 붙여넣는 것이 항상 모범 사례인 이유입니다. 실제 파일에 코드를 추가하면 쉽게 다시 열고 문제를 빠르게 제거할 수 있습니다. 테마 편집기를 사용하면 프로그래밍 오류가 발생했을 때 사이트가 잠기므로 그렇지 않습니다.
- 하나를 선택하지 않고 두 솔루션을 모두 복사하여 붙여넣습니다. 많은 게시물과 포럼에는 동일한 문제를 해결하는 여러 코드 조각이 포함되어 있습니다. 동일한 작업을 수행하는 2개의 코드 조각을 붙여넣으면 사이트가 손상될 수 있으므로 그렇지 않은 경우 코드가 손상되었다고 생각할 수 있습니다. 한 번에 하나의 스니펫만 사용하세요.
- 템플릿 파일에 함수 코드 복사: 때때로 자식 테마 함수 파일이 아닌 템플릿 파일에서 사용하도록 작성된 PHP 코드를 찾을 수 있습니다. 템플릿 코드는 일반적으로 PHP 열기 및 닫기 태그로 래핑된 함수 파일에서 항상 작동하지 않습니다. 사용자 정의 기능은 일반적으로 테마에 따라 te,plate 파일에서 일반적으로 작동하지 않는다는 것을 의미하지 않습니다. 코드를 붙여넣을 파일을 정확히 알고 있는지 확인하십시오. 그렇지 않으면 코드가 작동할 때 작동하지 않는다고 생각하는 오류가 발생할 수 있습니다.
- 코드를 무시하는 플러그인이 설치되어 있습니다. 일부 플러그인은 PHP 코드를 무시하고 필터와 후크가 있는 코드가 작동하지 않을 수 있습니다. 예를 들어 Genesis Simple Edits 플러그인이 있습니다. 게시물 정보 및 게시물 메타를 사용자 정의할 수 있는 이 플러그인이 설치되어 있는 경우 게시물 메타 또는 게시물 정보 필터를 포함하는 동일한 작업을 수행하기 위해 PHP 코드를 추가하면 작동하지 않습니다. 실제로 작동할 때 코드가 작동하지 않는다고 생각할 수 있으며 문제를 해결하고 코드가 작동하도록 하려면 플러그인을 비활성화하기만 하면 됩니다.
- PHP 코드를 사용하여 레이아웃 조건부 변경 이 코드는 Genesis bbPress 연결 플러그인도 사용하는 bbPress를 사용하는 일부 테마에서 작동하지 않습니다. 이 플러그인은 PHP 코드가 조건부로 레이아웃을 변경하기 위해 수행하는 것과 동일한 Genesis 필터에 연결하므로 코드를 오버라이드할 때 작동하지 않습니다.
- HTML 5 하위 테마에서 XHTML CSS 클래스 사용 – 예: #content는 .entry-content를 사용하는 HTML 5 하위 테마에서 작동하지 않습니다.
- XHTML 테마에서 HTML 마크업 사용 – .site-header는 XHTML 마크업을 실행하는 사이트에서 작동하지 않으므로 #header를 사용해야 합니다.
- 첫 페이지 템플릿 코드 – 첫 페이지 템플릿의 모든 코드는 기본 읽기 설정을 사용할 때만 작동합니다. 이 설정을 변경하고 정적 페이지를 첫 페이지로 선택하면 첫 페이지 템플릿의 코드가 작동하지 않습니다.
- 미디어 쿼리 후 CSS 추가 – 미디어 쿼리 전에 사용자 정의 CSS를 추가하는 것이 가장 좋습니다. 그렇지 않으면 작동하지 않을 수 있습니다.
- 이미 스타일이 지정된 클래스를 수정하기 위해 CSS 추가 – 기본적으로 이미 스타일이 지정된 기존 요소의 스타일을 변경하기 위해 스타일 시트 끝에 CSS를 추가했습니다. 예를 들어 기본적으로 추천 페이지 위젯을 사용하도록 스타일이 지정되어 있을 때 Genesis 추천 게시물 위젯을 사용하도록 위젯 영역을 수정하는 경우입니다. CSS는 다를 수 있지만 다른 클래스를 사용하고 있습니다. 당신이해야 할 일은 기본 CSS를 수정하여 더 이상 추천 페이지 위젯의 스타일을 지정하고 추천 게시물 위젯의 스타일만 지정하도록 하는 것입니다.
- 홈 페이지 템플릿 코드 – home.php 템플릿 파일의 모든 코드는 기본 읽기 설정을 사용할 때만 첫 페이지에서 작동합니다. 정적 페이지를 프론트 페이지로 사용하는 경우 드롭다운 메뉴에서 블로그 페이지 템플릿을 선택하지 않은 경우 코드는 블로그 페이지와 같은 게시물 페이지에서만 작동합니다. (블로그 페이지 템플릿이 포함된 테마에만 적용됨).
- 잘못 수정된 CSS로 인해 다른 CSS가 중단됨 – 구성원이 사용자 정의 레이아웃을 생성하기 위해 일부 코드를 설치했지만 콘텐츠 너비를 수정하는 CSS가 작동하지 않아 작동하지 않았습니다. 그들은 이전에 !important를 사용하여 추가한 다른 CSS로 인해 새 CSS가 작동하지 않는다는 사실을 발견했습니다.
위의 코드는 Genesis Simple Edits 플러그인이 게시물 정보 필터를 무시하고 활성화된 경우 작동하지 않습니다.
그것이 내가 현재 생각할 수 있는 전부이지만 이 목록에 추가할 수 있는 코드가 작동하지 않는(그러나 실제로 작동하는) 더 많은 이유가 있다고 확신합니다.
관련 게시물
- 코드를 다시 게시하기 전에 고려해야 할 5가지 중요한 사항