플러그인 / 테마로 만든 PHP 파일을 저장할 위치


12

플러그인 또는 테마가 나중에이를 포함 할 수있는 곳에 PHP 파일을 작성해야하는 경우가 있습니다. 예를 들어 보안 문자 플러그인 또는 twig / smarty와 같은 일종의 템플릿 시스템 (제 상황에서는 위젯 모음을위한 간단한 템플릿 엔진입니다).

이 파일은 어디에 작성해야합니까?

내가 생각할 수있는 유일한 곳은입니다 wp-content/uploads/.하지만 제대로 들리지 않습니다. :)

따라서 파일을 만들 수있는 안전한 장소가 있으며 WordPress / 플러그인 / 테마 업데이트에서 파일이 삭제되는 것에 대해 걱정하지 않아도됩니까?

한 가지 해결책은 테마 / 플러그인 디렉토리에 하위 테마 / 디렉토리를 만드는 것입니다 ...

답변:



5

플러그인 또는 테마 디렉토리의 쓰기 액세스에 의존 할 수 없으므로 wp_upload_dir () 만이 유일하게 가능한 디렉토리입니다.
그러나 나는 정보를 새로운 파일에 저장할 필요가 정말로 의심 스럽다. 사용자가 템플리트를 작성하는 경우 일반 플러그인 기능으로 컨텐츠를 구문 분석하십시오 (예 : 플레이스 홀더를로 대체 strtr()).


예, 변수를 대체하는 데 좋습니다 (지금은 그런 것이 있습니다). 그러나 만약 사용자가 IF와 같은 조건부 태그를 사용하거나 객체를 루프 할 수있게하려면 PHP 코드를 작성해야합니다.
onetrickpony

5

Wordpress 플러그인을 작업하는 동안 귀하의 질문이 우연히 발견되었습니다. 또한 플러그인에서 생성 한 일부 데이터를 캐시하기 위해 임시 파일을 만드는 것에 대해 먼저 생각했습니다. 그러나 조금 더 생각하면이 방법은 서버 클러스터를 사용하여 데이터를 확장하려는 경우 한 서버에 임시 데이터를 배치하고 싶지 않기 때문에 이상하게 보입니다.

그래서 나는 다시 검색했고, 그러한 문제에 대한 유효한 해결책 은 만료 날짜로 데이터베이스에 데이터를 저장할 수 있는 Wordpress Transients API 입니다. 물론 문제는 여전히 로컬에 캐시 된 파일을 요구할 수 있습니다 (예 : 데이터베이스에 너무 큰 파일). 그러나 적어도이 옵션을 살펴 보는 것이 좋습니다 :-)


3

플러그인이 파일을 만들어야하는 몇 가지 좋은 이유 만 생각할 수 있습니다. 하나는 사용자가 내보내고 다운로드하여 새 사이트로 이동할 수있는 복잡한 옵션을 백업하는 것입니다. 다른 하나는 사이트 맵 플러그인입니다.

플러그인에 사용자가 사용자 정의 할 수있는 템플리트 파일이있는 경우 사용자에게 사용자 정의 된 파일을 현재 테마 디렉토리로 이동하여 플러그인이 업데이트 될 때 겹쳐 쓰지 않도록하는 옵션을 사용자에게 제공해야합니다. 먼저 테마 디렉토리에서 파일을로드 한 다음 플러그인 디렉토리로 폴백 할 수 있습니다.

Gravity Forms는 업로드 된 양식을 업로드 한 파일의 자체 폴더에 저장합니다. W3 Total Cache는 wp-content를 사용하고, login redirect는 위에서 설명한 방법을 사용합니다.


1

파일 (예 : CAPTCHA 플러그인의 임시 파일)을 작성해야하는 경우 반드시 (또는와 \wp-content\uploads\같은 사용자 정의 디렉토리 )를 사용해야합니다 \wp-content\plugin-slug-files\.

대부분의 다른 사용자 정의 코드는 실제로 데이터베이스에 저장해야합니다.


1
그리고 eval()? 안
돼요

무엇을해야 eval()합니까?
Chip Bennett

예를 들어 똑똑한 것을 생각하십시오. 위젯을 작성하고 사용자가 원하는대로 출력을 사용자 정의 할 수있는 기능을 원한다고 가정하십시오. 따라서 위젯 옵션에 텍스트 영역을 추가하여 사용자가 해당 위젯에 대한 자신의 smarty-like 템플릿을 작성할 수 있습니다. 해당 템플릿을 컴파일해야하며,이를 수행하는 가장 좋은 방법은 PHP 파일을 생성하고 위젯에 포함시키는 것입니다.
onetrickpony

위젯 / 위젯 옵션의 의도 된 사용이 상당히 늘어난 것 같습니다.
Chip Bennett

1
확실히. 그러나 IMHO 사용자가 사용자 정의 위젯을 작성하는 데 많은 유연성이 필요한 경우 사용자 정의 플러그인을 작성하거나 테마의 functions.php 파일에 사용자 정의 위젯 코드를 추가해야합니다. 사용자가 다른 위젯을 작성할 수있는 위젯을 작성하는 플러그인이있는 이유는 무엇입니까?
Chip Bennett

1

항상 PSR-0 호환 오토로더와 작동하는 라이브러리 폴더를 제안합니다.

일부 WP 사용자는 당신을 쏘고 있지만 아마도 당신은이 사용자들에게 초점을 맞추지 않았기 때문에 이것은 옵션이 될 수 있습니다. 특히 공급 업체별 라이브러리가 점점 많아 질 경우.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.