>CMS 튜토리얼 >Word누르다 >WordPress FileSystem API 소개

WordPress FileSystem API 소개

Jennifer Aniston
Jennifer Aniston원래의
2025-02-17 08:38:10643검색

WordPress FileSystem API 소개 로컬 파일에 쓰는 것은 많은 플러그인과 테마가 다양한 목적에 필요한 기능 중 하나입니다. 보안은 가장 중요한 문제 플러그인이며 주제는 로컬 파일 시스템에 글을 쓰는 동안 처리해야합니다. WordPress는 다양한 호스팅 서비스 및 구성을 통해 실행되므로 개발자가 보안을 손상시키지 않고 모든 종류의 환경에서 작동하도록 로컬 파일 시스템에 액세스하는 플러그인 및 테마를 만들기가 어려워집니다. 이 자습서에서는 WordPress Filesystem API를 사용하여 적절한 파일 권한을 처리하는 로컬 파일 시스템에 액세스하는 방법을 배웁니다. 이 과정에서 TextRea의 내용을 파일에 저장하는 관리 페이지에 TextArea가있는 양식을 표시하는 플러그인을 만듭니다. 키 테이크 아웃

WordPress Filesystem API는 플러그인 및 테마가 로컬 파일 시스템에 쓸 수있는 안전한 방법을 제공하고 파일 권한을 자동으로 처리 할 수있는 다양한 호스팅 서비스 및 구성 WordPress가 운영하는 경우에 중요합니다. API는 시스템 호출을 통해 파일 시스템에 쓸 수 있으며 파일 권한 및 사용 가능한 PHP 확장에 따라 가장 적합한 방법을 선택할 수 있습니다. 또한 FTP 또는 SSH 연결에 대한 사용자 자격 증명을 저장할 수도 있습니다.

튜토리얼은 API를 사용하여 플러그인을 만드는 방법을 보여줍니다. 플러그인은 관리 페이지에 양식을 표시하여 TextArea의 내용을 파일에 저장합니다. 이 자습서는 플러그인 파일 및 디렉토리 작성, 관리자 페이지 생성 및 파일에 대한 쓰기 및 읽기를위한 코드를 제공합니다.

WP_FilesyStem 클래스의 인스턴스 인 $ WP_FILESYSTEM 객체는 파일을 읽고, 작성, 쓰기 및 삭제하는 방법을 노출시킵니다. 사용 가능한 다른 방법에는 Delete, Mkdir, Move, Size 및 CHMod가 있습니다. WordPress는 기본적으로 FTP 또는 SSH 자격 증명을 영구적으로 저장하지 않지만 wp-config.php 파일을 사용하여 영구적으로 저장할 수 있습니다. 이것은 플러그인이 파일 시스템과 상호 작용할 때마다 자격 증명을 다시 입력 할 필요가 없습니다.

왜 WordPress Filesystem API를 사용 하는가? 당신은 왜 우리가 PHP의 파일 시스템 기능을 사용하여 완전히 새로운 API 세트를 배우고 사용하는 대신 로컬 파일을 읽고 쓰지 않는지 궁금 할 것입니다. PHP 파일 시스템 API를 사용하는 문제는 파일 권한을 자동으로 처리하지 않는다는 것입니다. 공유 호스팅 서비스를 사용하여 WordPress 사이트를 호스팅하고 호스팅 웹 서버가 "관리자"운영 체제 계정으로 실행되고 있다고 가정합니다. PHP를 사용하여 파일을 만들 때마다 "Admin"사용자로 소유됩니다. 따라서 동일한 공유 호스팅에서 호스팅 된 다른 웹 사이트는 웹 사이트 파일에도 "관리자"사용자로 실행되므로 사이트에 보안 문제를 제기 할 수 있습니다. 이 문제로부터 당사를 보호하려면 Php. 그러나 SSH 또는 FTP/SFTP를 사용하여 로그인하면 파일을 작성하면 로그인 한 운영 체제 사용자 계정이 소유합니다. FTP 서버가 "admin"사용자로 실행 중이고 "NarayanPrusty"사용자로 로그인 한 경우 새로 생성 된 파일은 "admin"이 아닌 "NarayanPrusty"로 소유자가 있습니다. WordPress는 파일 권한을 자동으로 처리 할 수있는 FileSystem API를 도입했습니다. FileSystem API는 WordPress 2.6에서 릴리스되었습니다. WordPress는 실제로 플러그인, 테마 및 핵심 업데이트 시스템을 지원하기 위해 실제로 출시했지만 나중에 플러그인 및 테마에서 자체 목적으로 사용하기 시작했습니다. 파일 시스템 API는 어떻게 작동합니까? 파일 시스템 API는 시스템 호출 (예 : Direct, FTP, FTP 소켓 또는 SSH2)을 사용하여 파일 시스템에 쓸 수 있습니다. 적절한 파일 권한이있는 파일을 생성하는 방법과 사용 가능한 PHP 확장자를 기반으로 메소드 중 하나를 선택합니다. FileSystem API는 먼저 Direct Method를 확인한 다음 FTP 및 마지막으로 SSH2를 확인합니다. FTP 또는 SSH를 사용하는 동안 사용자로부터 자격 증명을 가져와야합니다. FileSystem API는 기능을 제공하면 자격 증명을 가져와 저장할 수있는 양식을보다 쉽게 ​​표시 할 수 있습니다. 플러그인 파일 및 디렉토리 생성 이제 페이지에 TextArea를 표시하는 플러그인을 만들어 양식을 제출하면 TextArea의 내용을 로컬 파일에 저장합니다. 플러그인의 디렉토리 구조는 다음과 같습니다

WordPress 설치의 WP-Content/플러그인 디렉토리에서 이러한 파일과 디렉토리를 만듭니다. 플러그인을 설치할 수있게하려면이 코드를 fileSystem.php 파일에 넣습니다.

이제 관리자 패널을 방문하여 플러그인을 설치하십시오 관리자 페이지 생성 다음은 예제가 상주하는 관리자의 페이지가 필요합니다. 다음은이 페이지를 만들고 TextArea를 표시하는 코드입니다. 이 코드를 fileSystem.php 파일에 배치하면 입니다

코드의 작동 방식은 다음과 같습니다

먼저“설정”메뉴에 페이지를 추가했습니다. demo_page는 페이지 내용을 표시하기위한 콜백입니다 페이지 내부에 TextRea 및 Nonce 필드가있는 HTML 양식을 표시합니다. 양식을 제출할 제출 버튼도 있습니다. Textarea 이름은 File-Data입니다. CSRF 공격을 방지하기 위해 Nonce가 추가됩니다 페이지가 열리면 read_file_demo 함수를 사용하여 저장된 파일 데이터를 검색합니다. 양식이 제출되면 write_file_demo 함수를 사용하여 TextArea의 내용을 파일에 저장합니다. read_file_demo 또는 write_file_demo가 wp_error 객체의 인스턴스를 반환하면 대신 오류 메시지를 표시합니다.

참고, 위의 코드는 아직 read_file_demo 및 write_file_demo 함수를 만들지 않았기 때문에 WordPress 사이트를 중단합니다. 지금 그들을 만들어 봅시다!

파일에 쓰기 다음은 write_file_demo 함수의 구현입니다 :

--filesystem
	--filesystem.php
	--filesystem-demo
		--demo.txt
코드의 작동 방식은 다음과 같습니다

먼저 우리는 함수 내부의 글로벌 $ wp_filesystem 객체를 참조했습니다. 이 개체는 WP_Filesystem 클래스의 인스턴스입니다. 파일을 읽고, 작성, 쓰기 및 삭제하기위한 다양한 방법을 노출시킬 책임이 있습니다.

다음으로, 우리는 양식 페이지의 Nonce URL과 양식의 필드 이름을 가진 배열을 만들고 있습니다. 마지막으로, 우리는 connect_fs 함수를 사용하여 파일 시스템에 연결합니다. connect_fs는 request_filesystem_credentials 함수를 사용하여 파일 시스템 (Direct, FTP 또는 SSH)에 연결하는 적절한 메소드를 찾습니다. FTP 또는 SSH의 경우 사용자에게 자격 증명을 요청하는 양식을 반향합니다. 직접 방법의 경우 단순히 True를 반환합니다.
    TextArea 양식이 제출되고 request_filesystem_credentials가 ftp 또는 ssh 메소드를 선택하면 자격 증명 양식을 표시하고 자격 증명 양식에서 파일 데이터 필드를 숨 깁니다. > request_filesystem_credentials function의 첫 번째 매개 변수는 올바른 자격 증명이 있으면 리디렉션 할 URL을 가져옵니다. 리디렉션은 유형의 사후 요청입니다. request_filesystem_credentials 마지막 매개 변수는 리디렉션 URL에 게시 할 필드 이름의 배열입니다. 자격 증명 양식이 제출되면 원래 양식으로 다시 리디렉션됩니다. 적절한 필드 이름과 사용자가 입력 한 값이있는 URL을 제출합니다. 다시, 전체 프로세스가 시작되고 write_file_demo를 실행합니다. 이번에는 request_filesystem_credentials가 자격 증명이 있으므로 단순히 true를 반환합니다. 그런 다음 폴더를 참조하기 위해 $ wp_filesystem-> find_folder를 사용합니다. 그런 다음 Demo.txt 파일의 전체 경로를 구축합니다.
  • 우리는 $ wp_filesystem-> put_contents를 사용하여 파일에 데이터를 작성했습니다
  • 참고 : 자격 증명을 요청하고 확인하지 않고 $ wp_filesystem 객체의 메소드를 사용하려고하면 작동하지 않습니다. 파일을 읽는다 여기 read_file_demo 함수의 구현은 다음과 같습니다
  • 코드의 작동 방식은 다음과 같습니다
  • demo.txt 파일을 읽는 동안 먼저 request_filesystem_credentials function을 사용하여 파일 시스템에 연결합니다. 이번에는 양식이 제출되지 않기 때문에 마지막 매개 변수에서 양식 필드를 전달하지 않습니다. 자격 증명이 검색되면 리디렉션 URL을 전달하여 리디렉션 URL을 전달합니다. 그런 다음 $ wp_filesystem->가 함수를 사용하여 파일이 존재하는지 확인합니다. IT 파일이 존재하지 않습니다. 오류가 표시됩니다. 그렇지 않으면 $ wp_filesystem-> get_contents 함수를 사용하여 파일을 읽고 컨텐츠를 반환합니다.
  • WordPress가 FTP를 파일 생성에 적합한 방법으로 선택했다고 가정하면 전체 프로세스의 스크린 샷은 다음과 같습니다. 먼저 데모 페이지를 열면이 양식이 표시됩니다.WordPress FileSystem API 소개 여기에서는 FTP 또는 FTPS 자격 증명을 입력하여 제출해야합니다. 제출하면이 양식이 표시됩니다

    빈 텍스트 주변이 표시되었습니다. “Hello World !!!”텍스트를 입력하십시오. 양식을 제출하십시오. 자격 증명 양식이 다시 표시됩니다

    WordPress는 기본적으로 FTP 비밀번호를 저장하지 않기 때문에 다시 채워야합니다 (나중에 WP-Config.php 에서이 작업을 수행 할 수 있습니다). 따라서 플러그인이 파일 시스템으로 작업해야 할 때마다 자격 증명을 요청해야합니다. 이제 제출하면 필드 이름과 값이 앞서 제출 된 리디렉션 URL로 다시 리디렉션됩니다. Textarea가 나타나는 방법은 다음과 같습니다 WordPress FileSystem API 소개 여기, 우리는 파일의 내용을 읽고 표시합니다.

    $ wp_filesystem 객체의 다른 방법

    $ WP_FILESYSTEM 객체는 파일 및 디렉토리에서 다양한 다른 작업을 수행하는 다른 많은 방법을 제공합니다. 우리는 방금 N 파일을 쓰고 읽는 것을 보았습니다. wp_filesystem_base () 문서 페이지에서 할 수있는 일의 전체 목록을 찾을 수 있습니다. 중요한 것들 중 일부를 확인해 봅시다 : WordPress FileSystem API 소개

    <_> $ wp_filesystem-> 삭제 : 삭제는 파일 또는 디렉토리를 삭제하는 데 사용됩니다. 경로를 나타내는 문자열을 전달해야합니다 <_ _> $ WP_FILESYSTEM-> MKDIR : MKDIR은 디렉토리를 만드는 데 사용됩니다. 부모 디렉토리를 나타내는 문자열이 필요합니다 <_> $ WP_FILESYSTEM-> MOVE : MOVE는 파일을 이동하는 데 사용됩니다. 두 개의 매개 변수가 필요합니다. 즉, 첫 번째 매개 변수는 파일의 경로이고 두 번째는 이동할 디렉토리입니다. <_> $ wp_filesystem-> 크기 : 크기는 파일의 크기를 바이트로 반환합니다. 파일의 경로를 통과해야합니다.

    <_> $ wp_filesystem-> chmod : chmod는 파일의 권한을 변경하는 데 사용됩니다. 파일의 경로, 권한 옥탈 번호 및 재귀를 나타내는 부울의 세 가지 인수가 필요합니다. WordPress FileSystem API 소개 당신은 $ wp_filesystem-> 메소드 공공 속성을 사용하여 FileSystem에 액세스하기 위해 WordPress에서 어떤 연결 방법을 사용하는지 찾을 수 있습니다. 자격 증명을 영구적으로 저장합니다 우리는 WordPress가 FTP 또는 SSH 자격 증명을 영구적으로 저장하지 않는다는 것을 알았습니다. 자세한 내용을 반복해서 요청하는 것은 사용자 친화적이지 않습니다. wp-config.php 파일을 사용하여 자격 증명을 영구적으로 저장하는 방법이 있습니다. 이 옵션을 사용하여 FTP 및 SSH 자격 증명을 저장하십시오.
      <_ _> ftp_host : 서버의 호스트 이름. <_> ftp_user : 연결하는 동안 사용할 사용자 이름 <_ _> ftp_pass : 를 연결하는 동안 사용할 비밀번호 <_ _> ftp_pubkey : ssh2 연결을 사용하는 동안 사용될 공개 키의 경로. <_ _> ftp_prikey : ssh2 연결을 사용하는 동안 사용될 개인 키의 경로.
    • 결론 이 기사에서는 WordPress FileSystem API를 사용하여 파일 시스템에 액세스하는 관리자 페이지를 설계하는 프로세스를 보았습니다. 백그라운드 프로세스 (예 : CRON 작업 사용)에서 파일 시스템에 액세스하려고하는 경우 필요한 경우 자격 증명 양식을 표시 할 수 없습니다.이 경우 사용자에게 알릴 필요가 있습니다. 자격 증명 상수를 wp-config.php 파일에 배치합니다. 계속 해서이 API를 더 실험하고 아래에서 우리와 경험을 공유 할 수 있습니다.
    • WordPress Filesystem API
    • 에 대한 자주 묻는 질문 (FAQ) WordPress Filesystem API는 무엇입니까? 중요한 이유는 무엇입니까?
    • WordPress Filesystem API는 WordPress가 제공하는 기능 세트입니다. . 서버의 파일 시스템과 상호 작용하는 안전하고 안정적인 방법을 제공하기 때문에 중요합니다. 이것은 파일 및 디렉토리 작성, 수정 또는 삭제, 미디어 파일 업로드 또는 WordPress 설치 업데이트와 같은 작업에 중요합니다.
    • WordPress FileSystem API가 어떻게 작동합니까?
    • WordPress FileSystem API는 서버의 파일 시스템과 상호 작용하는 데 사용할 수있는 기능 세트를 제공하여 작동합니다. 이러한 기능은 기본 파일 시스템 작업을 추상화하여 서버의 운영 체제 또는 파일 시스템에 관계없이 일관된 인터페이스를 제공합니다. 즉, Windows 서버에서와 마찬가지로 Linux 서버의 파일 시스템과 상호 작용하기 위해 동일한 기능을 사용하여 내 플러그인 또는 테마에서 WordPress Filesystem API를 어떻게 사용할 수 있습니까?
    자신의 플러그인 또는 테마에서 WordPress FileSystem API를 사용하려면 먼저 API 기능이 포함 된 'wp-admin/contacited/file.php'파일을 포함해야합니다. 그런 다음 API 기능을 사용하여 파일 시스템과 상호 작용할 수 있습니다. 예를 들어 'wp_filesystem ()'함수를 사용하여 파일 시스템을 초기화 한 다음 'get_contents ()', 'put_contents ()'또는 'delete ()'와 같은 다른 함수를 사용하여 읽거나 쓰기, 또는 파일을 삭제합니다. 기존 PHP 파일 시스템 기능을 통해 WordPress Filesystem API를 사용하면 어떤 이점이 있습니까?

    기존 PHP 파일 시스템 기능을 통해 WordPress Filesystem API를 사용하는 주요 이점은 API가 일관된 인터페이스를 제공한다는 것입니다. 서버의 운영 체제 또는 파일 시스템. 즉, 다른 파일 시스템 간의 차이에 대해 걱정할 필요없이 모든 서버에서 작동하는 코드를 작성할 수 있습니다. 또한 API는 올바른 권한으로 모든 파일 작업이 수행되도록함으로써 더 높은 수준의 보안을 제공합니다.

    WordPress Filesystem API를 사용하여 파일을 업로드 할 수 있습니까?

    예, 가능합니다. WordPress Filesystem API를 사용하여 파일을 업로드하십시오. API는 파일 유형 확인, 파일이 너무 크지 않은지 확인하고 파일을 올바른 디렉토리로 이동하는 등 전체 업로드 프로세스를 처리하는 'wp_handle_upload ()'라는 기능을 제공합니다. 이렇게하면 파일 업로드를 안전하고 안정적인 방식으로 쉽게 처리 할 수 ​​있습니다.

    WordPress Filesystem API를 사용할 때 어떻게 처리 할 수 ​​있습니까?

    WordPress Filesystem API는 'is_wp_error (is_wp_error)라는 함수를 제공합니다. ) '함수가 오류를 반환했는지 확인하는 데 사용할 수 있습니다. 오류가 발생하면 'get_error_message ()'함수를 사용하여 사람이 읽을 수있는 오류 메시지를받을 수 있습니다. 이렇게하면 오류를 쉽게 처리하고 사용자에게 유용한 피드백을 제공 할 수 있습니다.

    WordPress Filesystem API를 사용하여 .htaccess 파일을 수정할 수 있습니까?

    예, WordPress FileSystem API를 사용할 수 있습니다. .htaccess 파일을 수정합니다. API는‘insert_with_markers ()’이라는 함수를 제공하여 특정 마커 사이에 .htaccess 파일에 줄을 삽입 할 수 있습니다. 이를 통해 안전하고 신뢰할 수있는 방식으로 .htaccess 파일에 사용자 정의 규칙을 쉽게 추가 할 수 있습니다.

    WordPress FileSystem API가 Secure?

    예, WordPress FileSystem API가 안전합니다. 모든 파일 작업이 올바른 권한으로 수행되도록하고 파일 이름 및 경로를 소독하는 기능을 제공합니다. 이렇게하면 디렉토리 트래버스 공격과 같은 일반적인 보안 문제를 방지하는 데 도움이됩니다.

    WordPress FileSystem API를 사용하여 디렉토리를 생성 할 수 있습니까?

    예, WordPress FileSystem API를 사용하여 디렉토리를 만들 수 있습니다. API는 디렉토리와 필요한 모든 상위 디렉토리를 생성하는 'WP_MKDIR_P ()'라는 기능을 제공합니다. 이렇게하면 신뢰할 수있는 방식으로 복잡한 디렉토리 구조를 쉽게 만들 수 있습니다.

    WordPress Filesystem API를 사용하여 파일 및 디렉토리를 삭제할 수 있습니까?

    예, WordPress Filesystem API를 사용하여 삭제할 수 있습니다. 파일 및 디렉토리. API는 파일과 디렉토리를 모두 삭제할 수있는 'delete ()'라는 기능을 제공합니다. 이를 통해 자신을 쉽게 정리하고 플러그인이나 테마가 서버에 불필요한 파일을 남기지 않도록합니다.

위 내용은 WordPress FileSystem API 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.