본문 바로가기
Etc/Wordpress

[Wordpress] 코어 분석

by 생각하는달팽이 2015. 3. 5.

코어가 제공하는 기능


- 포스트와 페이지

: 생성과 저장, 가져오기, 콘텐츠와 관련된 대부분의 기능수행


- 메타데이터 

: 콘텐츠를 분류할 목적으로 사용자가 추가하는 모든 태그와 카테고리


- 테마

: 워드프레스 테마 지원 함수


- 액션과 필터, 플러그인

: 워드프레스 기능 확장



코어를 레퍼런스로 활용하는 방법

- 대부분의 코어파일에는 인라인 설명서가 명시되어 있음 ( 주석 )


다음 wp-includes/post.php 내의 add_post_meta 함수를 살펴보자.

/**
 * Add meta data field to a post.
 *
 * Post meta data is called "Custom Fields" on the Administration Screen.
 *
 * @since 1.5.0
 *
 * @param int    $post_id    Post ID.
 * @param string $meta_key   Metadata name.
 * @param mixed  $meta_value Metadata value. Must be serializable if non-scalar.
 * @param bool   $unique     Optional. Whether the same key should not be added.
 *                           Default false.
 * @return int|bool Meta ID on success, false on failure.
 */
function add_post_meta( $post_id, $meta_key, $meta_value, $unique = false ) {
	// Make sure meta is added to the post, not a revision.
	if ( $the_post = wp_is_post_revision($post_id) )
		$post_id = $the_post;

	return add_metadata('post', $post_id, $meta_key, $meta_value, $unique);
}

'포스트에 메타 데이터 추가하기' 라는 주석을 통해 해당 함수가 무엇을 하는지 바로 알 수 있다.


코어 코드 검토

워드프레스의 핵심 코어 파일들에 대해 살펴보자.


Function.php

> current_time 현재 시간 정보를 지정한 타입으로 가져온다.

> force_ssl_login 로그인할 때 SSL(https)를 사용하도록 요청한다.

> wp_nonce_ays 명령을 실행할 때 '실행할까요?' 라는 확인창을 출력한다.



Option.php

> add_option,update_option,get_option 저장된 옵션을 추가, 갱신, 출력한다.


Formatting.php

> _wp_specialchars 일부 특수문자를 HTML 엔티티로 변환한다. ( 3.x 버전 이하만  )

> esc_attr 일부 특수문자를 HTML 엔티티로 변환한다.

> is_email 맞는 형식의 이메일 주소인지 확인한다.


Pluggable.php

코어 함수이지만 플러그인에서 오버라이드 할 수 있다. 플러그인 로딩 중에 재정의되지 않은 함수들은 pluggable.php 의 정의를 따른다.

> wp_mail 워드프레스에서 이메일을 보낸다.

> get_userdata 지정된 사용자 ID에 해당하는 사용자의 데이터 전체를 반환한다.

> get_currentuserinfo 현재 로그인된 사용자의 데이터를 반환한다.

> wp_signon 사용자 인증 기능을 실행한다.

> wp_logout 현재 사용자를 로그아웃시키고, 사용자 세션을 제거한다.

> wp_redirect 다른 페이지로 리다이렉트한다.

> get_avatar 사용자의 프로필 사진을 반환한다. ( size 안 정하면 96px )


Plugin.php

> add_filter 콘텐츠를 출력하거나 데이터베이스에 저장할 때 동작되는 필터 훅을 추가한다.

> add_action 어떤 명령이 실행될 때 동작되는 액션 훅을 추가한다.

> register_activation_hook 플러그인이 활성화되는 순간 실행될 훅을 등록한다.

> register_deactivation_hook 플러그인이 비활성화되는 순간 실행될 훅을 등록한다.


Post.php

> wp_insert_post 신규 포스트를 작성한다.

> get_posts 검색범위에 해당하는 최근 포스트 목록을 가져온다.

> get_pages 블로그 내에 존재하는 모든 페이지 목록을 가져온다.

> add_post_meta 포스트에 추가되는 메타데이터를 생성한다.

> get_post_meta 포스트에 추가된 메타데이터를 가져온다.


Category.php

> get_categories 카테고리 객체의 목록을 가져온다.

> get_cat_ID 카테고리 이름에 맞는 ID 를 반환한다.


워드프레스에서는 이러한 여러 function 들을 통해 데이터를 조작 할 수 있다.


워드프레스 API

다음은 현재 제공되어지고 있는 API 목록이다 ( 3.x )

> 플러그인 API

> 위젯 API

> 숏코드 API

> HTTP API

> 셋팅 API

> 대시보드 위젯 API

> 다시쓰기 API 


자세한 내용들은 https://developer.wordpress.org/reference/ 에서 확인 할 수 있다.


다음 장에서는 루프에 대해 알아보도록 하겠다.

반응형

'Etc > Wordpress' 카테고리의 다른 글

[Wordpress] 데이터베이스  (2) 2015.03.07
[Wordpress] 루프  (0) 2015.03.05
[Wordpress] wp-config 파일  (0) 2015.03.02