객체 지향 코드는 어디에나 있고 WordPress는 예외가 아닙니다.
.
.
절차 코드가 잘 작동했기 때문에 객체 지향적 접근 방식에서 개발의 요점이 무엇인지 궁금 할 것입니다.
<nothing> 절차 디자인에는 '잘못된'것이 없지만 객체 지향적 인 스타일로 개발하는 데 몇 가지 이점이 있습니다.
</nothing>
.
확장 성
절차 코드를 사용하면 코드의 일부를 리팩터링하거나 추가 상황을 처리하기 위해 완전히 새 코드를 만들어야합니다.
모듈 식
<object> 객체 지향 설계의 목적은 상황을 클래스로 해결하기 위해 모든 기능을 캡슐화하는 것입니다.
<the> 문제를 해결하기위한 모든 코드는 클래스 내부에 있고 해당 클래스는 일반적으로 자체 PHP 파일 내에 있으므로 전체 파일을 가져 와서 다른 위치에서 사용할 수 있으므로 본질적으로 모듈 식입니다. </the></object>
다음 코드를 클래스 파일에 복사하십시오<pre class="brush:php;toolbar:false"><span>//Theme functions for child theme
</span>
<span>//load our event showcase class
</span><span>$event_showcase = get_stylesheet_directory() . '/includes/event_showcase/event_showcase_class.php';
</span><span>include($event_showcase);</span></pre>
<through> 프로세스 흐름을 이해할 수 있도록 방법과 속성을 통해 실행하겠습니다.
<p>
변수 - 클래스를보다 모듈화하기 위해 몇 가지 변수를 선언합니다 (따라서이 파일을 복사하고 몇 가지 속성을 변경할 수 있으며 클래스가 다른 변경 사항을 처리합니다). </p>.
<uctuct> __ construct () - 모든 후크, 필터 및 초기화 코드가 여기에 들어갑니다.
<lo> set_directory_value () - 우리가 CSS 또는 JS 디렉토리에 배치 할 파일을 쉽게 Enquue 할 수있는 디렉토리 속성을 정의합니다.
<ush ush> check_flush_rewrite_rules () - 콘텐츠 유형을 추가 할 때 예쁜 퍼머 링크의 플러싱을 처리합니다 (새 항목이 작동합니다).
<_> enqueue_public_scripts_and_styles () - 대중이 직면 한 스크립트와 스타일을로드합니다
<_> enqueue_admin_scripts_and_styles () - 관리자 스크립트와 스타일을로드합니다
<ont> add_content_type () - 생성하는 새 컨텐츠 유형을 정의합니다
<a> add_meta_boxes_for_content_type () - 새 컨텐츠 유형에 대한 메타 상자를 추가합니다.
<unun> display_function_for_content_type_meta_box-추가 정보를 저장할 수 있도록 컨텐츠 유형의 백엔드 관리 인터페이스를 빌드합니다.
<ust ust> save_custom_content_type ($ post_id) - 사용자 정의 컨텐츠 유형 (및 메타 정보)의 저장을 처리합니다.
<dd> display_additional_meta_data () - 프론트 엔드에 저장된 메타 정보를 표시합니다.
<ul>
<through> 지금을 살펴보고 이러한 요소를 업데이트하고 코드를 개요 를 설명합니다.
<ert> 클래스 속성
<some> 우리는 우리의 방법을 통해 참조 될 수업 상단에 일부 속성을 선언합니다. 이것들의 목적은 그들이이 수업을보다 쉽게 개선하고 향후 기능을 바꾸는 것을 쉽게 만들 수 있다는 것입니다.
<uct uct> __ construct ()
<c> 우리의 __construct 함수는 마법의 기능입니다. 이러한 기능은 클래스가 특정 작업을 수행하기 위해 액세스 할 수있는 특별한 PHP5 기능입니다.
<start> 그들 모두는 이름 앞에서 이중 밑줄로 시작하여 모든 클래스 정의에 선택적으로 포함될 수 있습니다. 모든 마법 기능을 이해하는 것은 또 다른 토론에 가장 적합합니다 (여기 마법 기능과 상수에 관한 또 다른 기사가 있습니다).
<c> __construct 함수는 클래스가 초기화 되 자마자 호출되므로 트리거 될 첫 번째 함수입니다. 여기에 우리는 모든 후크, 필터 및 시작 로직을 추가하고 있습니다. 다음 코드로 기본 개요를 업데이트하십시오
<li>
<thinking> 당신은 add_action이 이전에 본 것과 조금 다르게 보이고 당신이 맞다고 생각할 것입니다. </thinking>
</li>.
<_> add_action 및 add_filter 호출을 클래스 내에서 호출 할 때는 배열에서 두 번째 인수를 제공해야합니다. 배열의 첫 번째 값은 $이 변수 (클래스 자체를 의미)이고 두 번째는 사용될 함수의 이름입니다 (따옴표로 랩핑).
자세한 내용은 WordPress Codex의 Add_Action 함수에 대한 클래스 각주를 보려면 .<ir ir> set_directory_value ()
<be> CSS 및 JS를 수용 할 것이므로 파일 디렉토리 URL을 액세스 할 수있는 변수에 저장하는 것이 좋습니다. 당사의 디렉토리 구조는 /conture /event_showcase이지만 구조에 맞게 사용자 정의 할 수 있습니다.
<h3>
<ush ush> check_flush_rewrite_rules ()
<add> 사용자 정의 콘텐츠 유형을 추가하기 때문에 예쁜 퍼머 링크를 처리해야합니다. 이 퍼머 링크는 페이지 URL이 덜 추악하게 보이게하는 다시 쓰기입니다 (http://mywebsite.com.au/?p=123 대신 http://mywebsite.com.au/my-event) .
<ens> 다시 쓰기는 컨텐츠 유형이 예쁜 형식으로 변환되도록하지만이 재 작성은 비싸고 과도하게 완료하면 사이트 속도를 늦출 수 있습니다. 다시 쓰기는 귀하의 사이트에 영향을 줄 수 있으므로 일반적으로 테마/플러그인 활성화 또는 비활성화에서만 변경됩니다.
<not> Permalinks를 수동으로 업데이트하지 않으려면이 기능은 WordPress에게 자동으로 한 번만 수행하도록 요청합니다 (새 콘텐츠 유형이 추가 된 후).
이 기능은 테마 옵션을 통해 웹 사이트를 플러시 해야하는지 확인합니다. 플러시가 필요한 경우 퍼머 링크를 업데이트 한 다음 옵션 값을 False로 설정합니다 (따라서 페이지를로드 할 때마다 한 번만 트리거링).
</not></ens></add></ush>
</h3>
<_> enqueue_public_scripts_and_styles ()
이 기능은 프론트 엔드에서 웹 사이트의 스크립트와 스타일의 queuing을 처리합니다.
<name> 우리는 다른 플러그인과의 명명 충돌이 없도록 eNqueue 호출에서 컨텐츠 유형의 이름을 사용합니다 (`event_showcase_public_scripts`). <p>.
<w w> 우리는 wp_enqueue_style과 wp_enqueue_script를 모두 호출하여 리소스를로드합니다.
<the> 우리는 또한 우리의 리소스를로드 할 때 $ content_type_name 속성을 사용합니다.
</the></w></p>
<_> enqueue_admin_scripts_and_styles ()
이 기능은 관리자 백엔드에서 웹 사이트의 스크립트와 스타일의 queuing을 처리합니다.
<see> 우리는 콘텐츠 유형에 대한 편집 화면 또는 새 화면에 있는지 확인하고 (오른쪽 페이지에 있지 않을 때 리소스를로드 할 필요가 없음).
<w> 우리는 wp_enqueue_style과 wp_enqueue_script를 모두 호출하여 우리의 자원을 공개적으로 직면 함수와 동일하게로드합니다.
이 예에서는 jQuery UI DatePicker (jQuery UI 라이브러리의 일부)와 jQuery UI Time Picker (날짜 선택기와 비슷한 스타일을 갖도록 제작)를 모두 사용하고 있습니다.
<the> 위의 링크에서 Time Picker 라이브러리를 다운로드하고 디렉토리에 관련 CSS 및 JS 파일을 포함시킵니다.
<pre class="brush:php;toolbar:false"><span>//Theme functions for child theme
</span>
<span>//load our event showcase class
</span><span>$event_showcase = get_stylesheet_directory() . '/includes/event_showcase/event_showcase_class.php';
</span><span>include($event_showcase);</span></pre>
<ont> add_content_type ()
<our> 우리는이 기능에서 사용자 정의 콘텐츠 유형을 선언합니다
이 기능은 $ Singular_name, $ plural_name 및 $ content_type_nameproperties를 사용 하여이 새로운 게시물 유형의 등록을 쉽게 할 수 있습니다.<reg> 등록 기능을 구조화하면 이와 같이 몇 가지 정보 만 해결하여 포스트 유형을 쉽게 변경하고 등록 할 수 있음을 의미합니다.
<detail> 사용자 정의 콘텐츠 유형 등록에 대한 자세한 내용은 register_post_type 함수의 WordPress Codex를보십시오.
<p>
<added>이 단계를 추가 한 후에는 백엔드 워드 프레스 메뉴에 새 항목이 추가되었습니다.
</added></p>
<a> add_meta_boxes_for_content_type ()
<met> 우리는 여기에 콘텐츠 유형에 필요한 메타 상자를 추가합니다. add_meta_box 함수를 호출하여 기능을 제공합니다. 짧은 이야기는 이것을 사용하여 저장하려는 새로운 양식 요소를 보유하기 위해 새 관리 상자를 만들었다는 것입니다.
<p>
<un un> display_function_for_content_type_meta_box ($ post)
<function> 우리는이 기능을 사용하여 콘텐츠 유형의 새로운 메타 정보에 대한 백엔드 옵션을 출력합니다.
이 예를 들어, 우리는 최종 사용자에게 보여줄 이벤트에 대한 날짜, 시간 및 기타 정보를 수집합니다.
<collect> 우리는 모든 추가 포스트 메타를 변수로 수집하고 HTML 양식의 출력을 표시하는 것으로 시작합니다. 이 필드 중 일부는 날짜 선택기 인터페이스를 트리거하고 다른 필드는 시간 선택기를 트리거합니다 (요소에 사용 된 클래스에 의해 결정됨).
<we> 또한이 페이지에서 요청이 온 경우 저장을 확인할 수 있도록 Nonce 필드를 설정했습니다.
</we></collect></function></un></p>
<done>이 단계를 모두 마치면 새로운 빈 메타 상자가 변형되었으며 이제 새로운 정보를 모두 보유 할 수 있습니다.
<pre class="brush:php;toolbar:false"><span>//Theme functions for child theme
</span>
<span>//load our event showcase class
</span><span>$event_showcase = get_stylesheet_directory() . '/includes/event_showcase/event_showcase_class.php';
</span><span>include($event_showcase);</span></pre>
save_custom_content_type ($ post_id)
<we> 여기에 사용자 정의 컨텐츠 유형에 대한 추가 메타 데이터를 저장하는 곳입니다. <p>
<for> 우리는 먼저 메타 상자에 추가 한 Nonce를 확인하고 그 진위를 확인합니다. 그 후 우리는 자동 저장을하지 않고 사용자가 실제로이 페이지를 편집 할 수 있는지 확인합니다. 모든 수표가 통과되면 앞으로 나아갑니다. </for></p>
<of> 우리는 모든 값을 변수로 수집하고 SONITIZE_TEXT_FIELD 기능을 사용하여 소독합니다. 그 후 우리는 데이터를 저장하기 위해 update_post_meta 함수를 호출합니다. <img src="/static/imghwm/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173967277476449.jpg" class="lazy" alt="WordPress를 사용한 대상 지향 개발" >
<h3>
<d d> display_additional_meta_data ()
<ays ays>이 기능은 새로운 콘텐츠 유형 (단일 이벤트)의 단일 게시물에 대한 저장된 메타 정보를 표시합니다.
<a> 우리는 __construct 함수 내부에서 display_content_type_meta라는 새로운 조치를 정의했습니다.
</a></ays></d>
</h3>
이 동작의 두 번째 값을 display_additional_meta_data라고 하며이 함수에 해당합니다. 이것은 누군가가 do_action ( 'display_content_type_meta')을 호출 할 때마다; 이 기능을 호출하고 새로운 포스트 메타 정보를 표시합니다. <p><do> 당신은 do_action ( 'display_content_type_meta')을 호출 할 수 있습니다. 테마 내부의 어느 곳에서나 (이 컨텐츠 유형의 단일 게시물에있는 한) 메타 정보가 표시됩니다. <p>
<a> 나는 213의 부모 테마를 사용하고 있으므로 내 디스플레이를 위해 어린이 테마의 content.php에 연결하고 있습니다.
이 기능은 Global $ post 및 $ post_type를 얻고 현재 보는 현재 항목이 새로운 컨텐츠 유형인지 확인합니다.
<function> 이후에 함수는 메타 정보를 수집하고이를 표시합니다 (길을 따라 몇 가지 빠른 점검을합니다).
</function></a></p>
<c c> 추가 파일, CSS 및 JS <p>
<bul> 이제 대부분의 기능이 완료되었으므로 CSS 및 JS 파일로 교체하여 일부 스타일과 상호 작용을 빠르게 추가하겠습니다.
<ow ow> event_showcase_admin_styles.csss
</ow></bul></p>
<ow ow> event_showcase_public_styles.css
<p>
<ow ow> event_showcase_admin_scripts.js </ow></p>
<p>
<ality> 작업 완료된 기능!
<all> 모든 것이 모두 함께 조각되면 추가 메타 데이터로 새로운 '이벤트'를 만들 수 있어야합니다. 이벤트를 볼 때 아래의 내 샘플에 무언가를 볼 수 있습니다
</all></ality></p>
<the> 추가 자막, 날짜, 시간 및 티켓 데이터를 볼 수 있습니다.
<basic> 이와 같은 기본 게시물 유형을 확장하고 추가 요소를 추가하면 훨씬 대화식이 있고 쉬운 웹 사이트를 관리 할 수 있습니다. 더 이상 사용자는 지저분하고 사용하기 어려울 수있는 콘텐츠 영역을 통해 모든 정보를 추가 할 필요가 없습니다. 이제 인터페이스를 쉽게 관리하기 쉬운 간단합니다. <pre class="brush:php;toolbar:false"><span>//Theme functions for child theme
</span>
<span>//load our event showcase class
</span><span>$event_showcase = get_stylesheet_directory() . '/includes/event_showcase/event_showcase_class.php';
</span><span>include($event_showcase);</span></pre>
<here> 여기서 어디에서 어디에서? <h3>>
<have> 이제 객체 지향 디자인의 실질적인 예와 개발을 향상시키는 것이 얼마나 쉬운지를 보았으므로 이러한 기술을 적용하고 더 나은 테마 및 플러그인을 구축 할 수 있습니다.
<to> 내 GitHub 페이지 에서이 예제의 소스를 다운로드 한 다음 다가오는 프로젝트에 맞게 변경하거나 추가 기능을 제공하도록 확장 할 수 있습니다.
<article>이 기사가 개발 계획을 세우고 객체 지향 방법론이 시간과 노력을 모두 절약 할 수있는 방법을 확인하는 데 도움이되기를 바랍니다.
<questions> WordPress를 사용한 객체 지향 개발에 대해 자주 묻는 질문
WordPress의 OP (Object-Oriented Programming)는 무엇입니까? </questions></article></to></have>
</h3> WordPress의 OP (Object-Oriented Programming)는 "개체"를 사용하는 프로그래밍 스타일-청사진과 같은 클래스의 인스턴스입니다. 이 객체는 응용 프로그램 및 소프트웨어를 설계하기 위해 서로 상호 작용하는 데 사용됩니다. WordPress의 OOP는 프로그램에 명확한 모듈 식 구조를 제공하기 때문에 유리합니다. 이는 구현 세부 정보가 숨겨져 있고 장치에 명확하게 정의 된 인터페이스가있는 초록 데이터 유형을 정의하는 데 적합합니다. <p>. 객체 지향 프로그래밍은 WordPress의 절차 프로그래밍과 어떻게 다른가요? </p>
<h3> </h3> WordPress의 절차 프로그래밍에는 컴퓨터가 작업을 수행하기 위해 단계별로 따라야하는 지침 목록을 작성하는 것이 포함됩니다. 반면에 객체 지향 프로그래밍은 데이터 (객체) 주변의 프로그램과 해당 데이터에 대한 잘 정의 된 인터페이스 세트를 구성합니다. 이 접근법은 더 작고 재사용 가능한 조각으로 나누어 복잡한 애플리케이션을보다 쉽게 관리하고 제어 할 수 있습니다. <p> WordPress 객체 캐시는 무엇입니까? </p> <h3> WordPress 객체 캐시는 WordPress를 향상시키는 시스템입니다. 불필요한 쿼리를 방지하기 위해 메모리에 데이터베이스의 데이터를 저장하여 성능. 이렇게하면 데이터베이스의 하중이 줄어들면서 WordPress의 속도를 크게 높일 수 있습니다. </h3> <p> WordPress의 상자에서 OBJ를 제거하려면 WordPress의 상자에서 OBJ를 제거하려면 사용할 수 있습니다. 객체 캐시 비활성화, 플러그인 사용 또는 코드에서 수동으로 제거하는 것과 같은 다양한 방법. 그러나 사이트를 깨지 않도록 신중하게 수행해야한다는 점에 유의해야합니다. </p> WordPress 테마에서 객체 지향 프로그래밍을 구현하려면 객체 지향 프로그래밍을 구현하려면 어떻게해야합니까? WordPress 테마에서는 functions.php 파일 또는 개별 템플릿 파일 내에서 클래스와 메소드를 정의해야합니다. 그런 다음 이러한 클래스와 방법을 사용하여 객체를 만들 수 있으며, 이는 작업을 수행하기 위해 서로 상호 작용할 수 있습니다. <h3> WordPress에서 객체 지향 프로그래밍을 사용하면 어떤 이점이 있는가? WordPress의 프로그래밍은 몇 가지 이점을 제공합니다. 코드를보다 작고 이해하기 쉽고 유지하기가 더 쉽습니다. 또한 더 적은 코드로보다 복잡한 기능을 만들 수 있습니다. 또한, 더 나은 데이터 분석,보다 정확한 코딩 및 더 빠른 개발이 가능합니다. </h3> 게시물 제목에 나타나는 'obj'는 WordPress에서 의미 하는가? </here></basic></the></ow></c></do></p> 나타나는 'obj'가 나타납니다. WordPress의 게시물 제목에서 일반적으로 플러그인 또는 테마와 충돌 한 결과입니다. 그것은 WordPress의 표준 부분이 아니며 충돌을 식별하고 해결하여 제거 할 수 있습니다. <h3> </h3> WordPress에 대한 객체 지향 프로그래밍을 어떻게 배울 수 있습니까? <p> 배울 수있는 많은 리소스가 있습니다. WordPress의 객체 지향 프로그래밍. 여기에는 온라인 자습서, 코스 및 책이 포함됩니다. OOP 원칙을 사용하여 작성된 WordPress 핵심 코드를 검사하여 배울 수 있습니다. </p> WordPress 개발에 객체 지향 프로그래밍이 필요합니까? <h3> 객체 지향 프로그래밍이 엄격하게 필요하지는 않습니다. WordPress Development, 적극 권장됩니다. OOP 원칙을 사용하면 코드가 더 읽기 쉽고 재사용 가능하며 유지 관리가 더 쉬워 질 수 있습니다. 또한 WordPress 핵심 코드를 더 잘 이해하는 데 도움이 될 수 있습니다. </h3>
<object> WordPress 플러그인과 함께 객체 지향 프로그래밍을 사용할 수 있습니까? <h3> </h3> 예, WordPress 플러그인과 함께 객체 지향 프로그래밍을 사용할 수 있습니다. 실제로 많은 WordPress 플러그인은 OOP 원칙을 사용하여 작성됩니다. 이를 통해보다 복잡한 기능이 가능하고 플러그인 코드를 더 쉽게 관리하고 유지 관리 할 수 있습니다.</object></of></we></done></met></a></detail></reg></our></ont></the></w></see></_></name></_></be></ir></_></c></start></c></uct></some></ert></through>
</ul>
</dd></ust></unun></a></ont></_></_></ush></lo></uctuct></through>
위 내용은 WordPress를 사용한 대상 지향 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!