플러그인의 옵션 페이지를 추가하여 시작하겠습니다.
관리자 폴더 내부에서 Class-outed-notice-admin.php를 엽니 다. 플러그인의 설정 페이지를 등록 할 수 있도록이 클래스를 수정해야합니다. 수업 끝에이 공개 방법을 추가하십시오.
주목해야 할 사항은 클래스를 사용하여 후크를 정의하기 때문에 호출 할 기능을 직접 지정하는 대신 배열 (,
우리는 아직 끝나지 않았습니다! 볼 수 있듯이 add_options_page에는 유효한 콜백 함수가 필요합니다. 유효한 콜백 함수가 필요합니다. 추가하겠습니다. 이는 관리 제공되지 않은 Outice-Admin-Display.php를 관리자/부분 폴더에 포함시키기 때문에 충분히 간단해야합니다. 따라서 콜백 기능을 위해해야 할 일은 해당 파일을 포함시키는 것입니다.<span>/**
</span><span> * Add an options page under the Settings submenu
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function add_options_page() {
</span>
<span>$this->plugin_screen_hook_suffix = add_options_page(
</span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span> <span>__( 'Outdated Notice', 'outdated-notice' ),
</span> <span>'manage_options',
</span> <span>$this->plugin_name,
</span> <span>array( $this, 'display_options_page' )
</span> <span>);
</span>
<span>}</span>
그렇게해야합니다. 우리가 지금해야 할 마지막 일은 보일러 플레이트에서 제공된 로더 클래스를 사용하여 올바르게로드하는 것입니다. 포함 폴더에서 클래스 아웃 드래드-이시피스.php를 열고 define_admin_hooks 메소드 내에서 앞서 정의한 추가 후크를 추가하십시오. 옵션 페이지에 포함 할 적절한 액션 후크는 admin_menu이므로 추가하겠습니다.
이제 설정에 따라 추가 "구식 통지"하위 메뉴가 표시되어야합니다. URL http : // /wp-admin/options-general.php?page=outdated-notice로 이동하여 빈 옵션 페이지에 액세스 할 수 있습니다.
지금은 빈 페이지이므로 적절한 마크 업으로 부분 파일을 채우십시오.
.
등록, 저장 및 검색 값 <span>/**
</span><span> * Render the options page for plugin
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function display_options_page() {
</span> <span>include_once 'partials/outdated-notice-admin-display.php';
</span> <span>}</span>
WordPress Codex의 설정 API 페이지는 옵션 페이지에 표시하는 것을 포함하여 자체 설정을 등록하는 방법에 대한 좋은 설명을 제공합니다.
이 섹션에서 우리가 할 일에 대한 고장은 다음과 같습니다.
보일러 플레이트 로더로 후크를 등록하십시오
설정 섹션을 등록하십시오
2 개의 설정 필드 (임계 값 일과 텍스트 위치) 를 등록하십시오
두 설정을 등록
옵션 페이지를 채 웁니다
디스플레이를 위해 필드를 저장하고 다시 채 웁니다
후크를 보일러 플레이트 로더에 등록하십시오
모든 단계를 하나씩 살펴 보겠습니다
설정 섹션을 등록하려면 register_setting 함수를 사용해야합니다. 해당 함수를 초기화하기위한 적절한 후크는 admin_init입니다. 따라서 먼저 보일러 플레이트 로더에 또 다른 후크를 추가하여 기본 보일러 플레이트 클래스 인 Outdated_Notice 클래스의 정의 _Admin_hooks 메소드 내에 설정을 등록 할 것입니다.
옵션 이름에 물건을 더 단순하게 만들고 기본적인 종류의 네임 스페이스를 제공하기 위해이 클래스 위에 다른 개인 변수를 추가 할 것입니다. 이 스 니펫을 Outdated_notice_admin 클래스 위에 올려 놓으십시오
이제부터, 우리는이 값이 우리의 옵션과 관련된 모든 것에 배정 할 것입니다.
다음은 실제로 설정 섹션, 설정 필드 및 개별 설정을 등록하는 것입니다. outdated_notice_admin 클래스를 다시 열고 공개 메소드 레지스터를 추가하십시오.
설정 섹션을 등록하십시오
공개 register_setting 메소드 내부에서 설정 섹션을 등록 할 예정입니다. Codex가 이미 시작하기에 충분한 정보를 제공했기 때문에 다양한 기능과 API를 너무 많이 탐구하지 않을 것입니다. 플러그인 설정은 비교적 간단하기 때문에 하나의 섹션 만 등록 할 것입니다.
이 스 니펫은 add_settings_section 함수를 사용하여 옵션 페이지에 "일반"섹션을 등록 할 수 있습니다.<span>/**
</span><span> * Add an options page under the Settings submenu
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function add_options_page() {
</span>
<span>$this->plugin_screen_hook_suffix = add_options_page(
</span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span> <span>__( 'Outdated Notice', 'outdated-notice' ),
</span> <span>'manage_options',
</span> <span>$this->plugin_name,
</span> <span>array( $this, 'display_options_page' )
</span> <span>);
</span>
<span>}</span>
다른 플러그인과의 충돌을 방지하기 위해 변수 $ 옵션 _name으로 섹션 이름을 미리 보급하고 있습니다. 콜백은 우리 섹션에 대한 추가 정보를 제공하는 데 사용될 수 있습니다. 이것이 바로 우리가 원하는 것입니다.
우리는이 섹션에 대한 기본 정보를 반영 할 다른 공개 방법 인 Outdated_notice_general_cb를 추가 할 것입니다.
2 개의 설정 필드 (임계 값 일과 텍스트 위치) 를 등록하십시오
설정 API의 다음 부분은 옵션 페이지에 렌더링 할 실제 필드를 등록하는 것입니다. 이것은 add_settings_field 함수를 사용하여 달성 할 수 있습니다
우리는 텍스트 위치 구성에 라디오 버튼을 사용합니다. 이 코드를 우리가 가지고있는 register_setting 함수에 추가하여 수행됩니다.
우리는 add_settings_field의 다섯 번째 인수가 이전에 등록한 올바른 설정 섹션을 가리 키거나 옵션 페이지에서 필드를 볼 수 없는지 확인해야합니다.
이것은 아직 이루어지지 않았습니다. 라디오 버튼의 실제 마크 업을 렌더링하는 콜백 함수를 제공해야합니다. Outdated_notice_position_cb 함수 에서이 코드 블록을 포함시켜야합니다.
주간 임계 값의 두 번째 옵션은 일반 텍스트 입력을 사용하여 구성 할 수 있습니다. 그래서 우리는 다른 설정 필드를 등록 할 것입니다
<span>/**
</span><span> * Render the options page for plugin
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function display_options_page() {
</span> <span>include_once 'partials/outdated-notice-admin-display.php';
</span> <span>}</span>
다시, 우리는 또한 텍스트 필드를 렌더링하는 콜백 함수를 제공해야합니다.
설정을 등록
마지막으로, 우리는 WordPress에서 인식 할 수 있도록 사용할 옵션 이름을 등록해야합니다. 우리는 두 가지 다른 옵션 이름 인 outdated_notice_position 및 outdated_notice_day를 사용하고 있기 때문에 register_setting 함수를 사용하여 등록 할 것입니다.
register_setting 함수의 세 번째 매개 변수는 소독 콜백입니다. 선택 사항이지만 데이터베이스에 저장되기 전에 입력 값을 소독하는 것이 항상 유용합니다.
Day Sanitization의 경우, 우리는 우리의 경우에 충분한 내장 PHP 함수 인 Intval을 사용합니다. 텍스트 통지 위치와 관련하여, 우리는 자체 소독 콜백 함수를 정의 할 것입니다.이 값은 특정 값 만 데이터베이스에 저장할 수 있습니다. 이것은 우리가 전후에있는 두 값 만 수락하는 것과 같은 특정 값으로 제한되는 옵션을 처리 할 때 특히 유용하므로, 소독 콜백은 값이 중 하나가 아닌 경우 확인해야합니다. 이것들은 데이터베이스에 저장되지 않습니다
다음은 간단한 소독 콜백 기능이 있습니다<span>/**
</span><span> * Add an options page under the Settings submenu
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function add_options_page() {
</span>
<span>$this->plugin_screen_hook_suffix = add_options_page(
</span> <span>__( 'Outdated Notice Settings', 'outdated-notice' ),
</span> <span>__( 'Outdated Notice', 'outdated-notice' ),
</span> <span>'manage_options',
</span> <span>$this->plugin_name,
</span> <span>array( $this, 'display_options_page' )
</span> <span>);
</span>
<span>}</span>
옵션 페이지를 채 웁니다
모든 관련 설정을 등록한 후 이제 옵션 페이지가 올바르게 렌더링해야합니다. WordPress 방법을 사용하여 필드 및 설정을 등록 하므로이 작업은 특히 간단합니다.
admin/partials 폴더 내부의 구식이 아닌-비티 체-아인 display.php를 엽니 다. 이전에 등록한 설정을 기반으로 옵션 페이지를 렌더링하는 방법은 다음과 같습니다.
do_settings_sections 및 settings_fields 함수의 간단한 조합으로 옵션 페이지가 곧 완료됩니다.
휴식을 취하고 옵션 페이지를 새로 고쳐 봅시다
필드를 저장하고 다시 채 웁니다
일부 값을 채우고 양식을 저장하십시오. “설정이 저장되었습니다”라는 통지를 받아야합니다. 그러나 아무것도 발생하지 않았습니다. 우리의 옵션 모두에 var_dump를 시도해 보자. 관련 기능 어딘가에 이것을 배치하십시오.
아래 예제에 따라 데이터베이스에서 일부 값을 되돌려 야합니다.
.
먼저 라디오 버튼을 다루겠습니다. 바로 가기로서, 우리는 이전에 선택한 값을 표시하기 위해 WordPress가 제공 한 확인 된 기능을 사용합니다. Outdated_notice_position_cb는 약간의 수정이 필요합니다
콜백을위한 업데이트 된 스 니펫이 있습니다.
<span>/**
</span><span> * Render the options page for plugin
</span><span> *
</span><span> * <span>@since 1.0.0
</span></span><span> */
</span> <span>public function display_options_page() {
</span> <span>include_once 'partials/outdated-notice-admin-display.php';
</span> <span>}</span>
이제, 우리가 필드의 값을 변경할 때마다 옵션 페이지에 올바르게 반영됩니다. .
추가 개선
이것은 결코 완전하지 않습니다. 이 플러그인의 관리자가 직면 한 기능을 항상 향상시킬 수 있습니다. 내가 생각할 수있는 것들 중 일부는 다음과 같습니다.
코드 정리 - WordPress 플러그인 보일러 플레이트에는 많은 유용한 기능이 제공되지만 당사의 경우 관리자 측, CSS 및 JS로드는 완전히 불필요합니다. 우리는 항상 코드베이스에서 그것을 제거하여 더 작게 만들 수 있습니다.
i18n (국제화) 준비 - 플러그인에서 __ () 및 _e ()를 광범위하게 사용하고 있지만 실제 i18n 프로세스를 실제로 사용하지는 않습니다. 예를 들어이 기사 에서이 주제에 대해 itepoint에서 상당히 광범위하게 논의되었으므로 여기서 프로세스를 다루지 않을 것입니다.
더 좋은 선택 - 구현이 모든 게시물에 적용될 예정이므로 특정 범주 내의 게시물 또는 특정 태그가있는 게시물에 적용하도록 추가 최적화를 최적화 할 수 있습니다.
완전한 코드는 Part-2 지점 의이 Github 저장소에서 볼 수 있습니다.
보일러 플레이트가있는 WordPress 플러그인 개발에 대해 자주 묻는 질문
WordPress 플러그인 보일러 플레이트는 무엇이며 사용해야하는 이유는 무엇입니까?
WordPress 플러그인 보일러 플레이트는 고품질 WordPress 플러그인을 구축하기위한 표준화되고 구성되며 객체 지향적 인 프레임 워크입니다. 이해하기 쉬운 명확하고 일관된 구조를 제공합니다. 이 보일러 플레이트를 사용하면 플러그인의 기본 구조를 설정하는 데 많은 시간과 노력을 절약 할 수 있습니다. 또한 플러그인이 WordPress 코딩 표준 및 모범 사례를 따라 버그 및 호환성 문제를 방지하는 데 도움이되는 WordPress Coding 표준 및 모범 사례를 따릅니다.
WordPress 플러그인 보일러 플레이트로 시작하려면 어떻게해야합니까?
시작하려면 시작하십시오. WordPress 플러그인 보일러 플레이트를 사용하면 먼저 Github 저장소에서 다운로드해야합니다. 다운로드 후 플러그인 이름과 일치하도록 보일러 플레이트의 디렉토리와 파일의 이름을 바꿀 수 있습니다. 그런 다음 보일러 플레이트의 기존 구조에 고유 한 사용자 정의 기능을 추가하여 플러그인을 개발할 수 있습니다.
WordPress 플러그인 보일러 플레이트의 주요 구성 요소는 무엇입니까?
WordPress 플러그인 보일러 플레이트는 여러 것으로 구성되어 있습니다. 주요 구성 요소. 여기에는 플러그인 헤더 및 로더 클래스가 포함 된 플러그인 파일이 포함됩니다. 코어 플러그인 클래스 및 기타 기능 관련 파일이 포함 된 디렉토리 포함; 플러그인의 관리자 별 기능과 관련된 파일이 포함 된 관리 디렉토리; 플러그인의 공개 기능과 관련된 파일이 포함 된 공개 디렉토리. WordPress 플러그인 보일러 플레이트에 내 자신의 기능을 추가하려면 자신만의 기능을 추가하려면 어떻게해야합니까? WordPress 플러그인 보일러 플레이트는 포함 디렉토리에서 새로운 클래스를 만들 수 있습니다. 이 클래스는 보일러 플레이트에서 제공하는 기본 클래스를 확장해야합니다. 그런 다음이 클래스에 자신의 방법을 추가하여 원하는 기능을 구현할 수 있습니다. 필요에 따라 기존 클래스 및 메소드를 수정할 수도 있습니다.
WordPress 플러그인 보일러 플레이트에서 플러그인 설정을 처리하는 방법? WordPress 플러그인 보일러 플레이트는 플러그인 설정을 처리 할 수있는 클래스를 제공합니다. 이 클래스에는 설정 등록, 설정 필드 표시 및 소독 설정 값이 포함됩니다. 이 클래스를 자신의 설정 기능을 구현하기위한 시작점으로 사용할 수 있습니다.
내 플러그인에 관리자 별 기능을 추가하려면 어떻게합니까? 플러그인에 관리자 별 기능을 추가하려면 WordPress 플러그인 보일러 플레이트의 관리 디렉토리에 제공된 클래스 및 메소드를 사용할 수 있습니다. 이 디렉토리에는 관리자 페이지 작성, 설정 필드 추가 및 양식 제출 처리를위한 클래스가 포함되어 있습니다.
플러그인에 공개 기능을 추가하려면 어떻게해야합니까? 플러그인, WordPress 플러그인 보일러 플레이트의 공개 디렉토리에 제공된 클래스 및 메소드를 사용할 수 있습니다. 이 디렉토리에는 스크립트와 스타일을 흡수하고 공개 콘텐츠를 표시하기위한 클래스가 포함되어 있습니다.
WordPress 플러그인 보일러 플레이트로 플러그인을 국제화하려면 WordPress 플러그인 보일러 플레이트에 클래스가 포함되어 있습니다. 국제화. 이 클래스에는 플러그인의 텍스트 도메인을로드하는 방법이 포함되어 있으며 플러그인을 다른 언어로 변환 할 수 있습니다. 내 플러그인에서 AJAX 요청을 처리하는 방법
WordPress 플러그인 보일러 플레이트에는 클래스가 포함되어 있습니다. Ajax 요청을 처리합니다. 이 클래스에는 Ajax 작업 등록, Ajax 요청 처리 및 Ajax 응답 보내기 방법이 포함됩니다. WordPress 플러그인 보일러 플레이트를 사용할 때 플러그인을 디버그하는 방법은 무엇입니까?
WordPress를 사용할 때 플러그인 디버깅 플러그인 보일러 플레이트는 여러 가지 방법으로 수행 할 수 있습니다. 일반적인 방법 중 하나는 wp-config.php 파일에서 WP_DEBUG 상수를 사용하는 것입니다. PHP 오류, 통지 및 경고가 표시됩니다. WordPress에서 사용할 수있는 다양한 디버깅 플러그인을 사용하거나 PHP의 내장 오류 로깅 기능을 사용할 수도 있습니다.