WordPress 자체는 기본 플러그인 업데이트 프로세스를 제공하지 않으며 개발자는 직접 구현해야합니다. 여기에는 데이터베이스의 버전 번호 업데이트 및 필요한 경우 새 옵션 작성이 포함됩니다.
WordPress 플러그인의 버전 번호는 두 곳에 저장되어야합니다. 플러그인 메인 파일의 상수 및 데이터베이스의 옵션. 이를 통해 마지막 플러그인 업데이트 이후 데이터베이스 옵션이 업데이트되었는지 여부를 감지 할 수 있습니다.
옵션을 업데이트 할 때 개발자는 사용자의 선택을 덮어 쓰지 않도록주의해야합니다. 옵션이 데이터베이스에 존재하지 않으면 이미 존재하는 경우 덮어서는 안됩니다.
배열로 저장된 옵션의 경우, 개발자는 PHP 함수 를 사용하여 모든 키가 정의되고 존재하지 않는 옵션이 도입되지 않도록 할 수 있습니다. 또한 사용자가 이전 옵션을 변경하면 그 값이 유지됩니다.
몇 주 전, 나는 WP 사진 구체 (내가 개발 한 워드 프레스 플러그인)에 대한 이메일을 받았다. 문제는 큰 것입니다. 플러그인을 업데이트하면 일부 설치자가 충돌하게됩니다. 조사 후 문제는 플러그인에서 사용하는 옵션에서 비롯된 것으로 나타났습니다.이 설치 업체는 내가 추가 한 새로운 옵션에 대한 기본값을 제공하지 않습니다.
이 값은 매우 중요하므로 기본값을 생성하는 방법이 필요합니다. 그러나 내가 생각하는 것과는 반대로 WordPress는 업데이트 프로세스를 처리 할 기본 방법을 제공하지 않습니다.
이것이이 튜토리얼을 작성하고 싶은 이유입니다. 먼저, 업데이트 프로세스가 필요한 이유와 WordPress가 그러한 프로세스를 제공하지 않는 이유를 정확하게 이해할 것입니다. 그런 다음 옵션을 업데이트하기 위해 자신만의 프로세스를 올바르게 작성하는 방법을 보여 드리겠습니다. array_merge() 플러그인 업데이트 프로세스의 중요성
일반적으로 파일을 변경하는 것만으로는 충분하지 않습니다. 예를 들어, WordPress 파일을 새 버전으로 수동으로 업데이트 할 때 플랫폼은 버튼을 클릭하여 데이터베이스를 업데이트하도록 요청합니다.
업데이트 옵션
사용자의 선택을 덮어 쓰지 마십시오! add_option()
위의 옵션이 존재하지 않으면
가 false를 반환합니다. 이 동작을 사용하여 업데이트하려는 옵션이 데이터베이스에 존재하는지 테스트합니다. 이 경우, 우리는 아무것도하지 않습니다. 그렇지 않으면이 옵션을 만듭니다.
이 테스트는 우리가 무시하고 싶지 않은 옵션에 필요합니다. 어떤 경우에는 버전 번호를 고려할 때이 작업을 수행하고 싶을 수도 있습니다. 이전 가치를 유지하고 싶지 않습니다!
특별 케이스 - array <🎜 🎜>
WordPress는 배열이 옵션의 값을 저장할 수 있도록하고 다른 옵션을 만드는 것보다 더 어렵지 않습니다. 예를 들면 :
update_option() 여러 설정이 필요한 경우 배열을 사용하는 것이 좋습니다. 이렇게하면 데이터베이스에서 많은 항목을 사용하지 않으며 동일한 이름의 옵션을 사용하여 다른 플러그인의 가능성을 제한합니다. 그러나 업데이트 프로세스를 고려할 때 문제가 발생할 수 있습니다.
이유를 이해하려면 키가있는 옵션으로 배열이 있다고 가정 해 봅시다. 사용자는 반드시 이러한 값을 개인화합니다. 위에서 수행 한 테스트를 사용하여 옵션이 존재하지 않고 이러한 선택이 덮어 쓰지 않은 경우에만 옵션 만 만들 수 있습니다. 이것은 단순 해 보이지만 배열에서 새 키를 만들려면 어떻게해야합니까?
옵션이 데이터베이스에 존재하는 경우 이전 코드가 생성되지 않으므로 새 키가 존재하지 않습니다. 그러나 조건을 삭제하면 배열이 새 업데이트 될 때마다 기본값을 검색합니다. 이상적이지 않습니다. 다행히 해결책이 있습니다! update_option() 먼저, 옵션의 기본값이 포함 된 배열을 정의합니다 (새 키가 존재하는 경우).
그런 다음 데이터베이스에 저장된 배열을 검색합니다. get_option()
function my_awesome_plugin_activation() {
update_option('my_awesome_plugin_option', 'default value');
}
register_activation_hook(__FILE__, 'my_awesome_plugin_activation');
로그인 후 복사
위 내용은 WordPress 플러그인은 올바른 방식으로 업데이트됩니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!