워드프레스는 코어, 테마, 플러그인의 삼중 계층으로 구성되어 있습니다. 기본적인 기능은 코어에서 담당하고, 사이트가 어떻게 보일지의 레이아웃 설정은 테마에서 구성하구요. 코어에서 제공하지 않는 기능들은 플러그인이 담당합니다.
워드프레스를 설치한 직후 관리자 페이지에 로그인해보면 플러그인이 몇개 활성화되어 있고 기본 테마들이 준비되어 있습니다. 이 상태에서 사용자가 기호에 맞게 테마도 설치해서 쓸 수 있고, 플러그인도 그렇습니다.
테마를 바꾸면 사이트의 레이아웃이 바뀌구요. 플러그인을 활성화하면 기능이 추가됩니다.
일단은 플러그인은 기능 추가 테마는 사이트 레이아웃 이렇게 구별되지만요. 심도있게 들어가면 테마와 플러그인이 함께 제공되는 경우도 있는데요. 큰틀에서 코어에서 제공되는 기본 기능을 테마와 플러그인이 보완해준다는 이해로 하면 됩니다.
보시다시피 코어가 제일 하부에서 작동하구요. 코어 위에서 플러그인과 테마가 작동합니다. 겹친 부분은 대충 그린 것으로 서로 연동되는 것을 묘사했습니다.
우선 코어의 구조부터 살펴보면요. 워드프레스 디렉토리 구조부터 봅시다.
설치직후에 디렉토리 구조는 아래와 같습니다.
/wp-admin
/wp-content
/wp-includes
.htaccess
wp-config-sample.php
그외 파일들
각각의 디렉토리는 코어, 플러그인, 테마에 대응됩니다.
우선 /wp-admin과 /wp-includes와 설치 루트 디렉토리의 파일들은 워드프레스 코어입니다. /wp-content에는 사용자 지정 파일이 들어가게 되는데 테마와 플러그인, 미디어 파일, 업로드한 파일 등이 저장되게 됩니다.
wp-config-sample.php
이 파일은 워드프레스에서 참조하는 설정이 저장되어 있는 파일입니다. 보통 설치과정에서 wp-config.php 로 바뀌어 저장되구요. 제가 쓰는 클라우드웨이즈에서 관리자 모드로 애플리케이션을 만들면 wp-config-sample.php 없이 필요한 설정이 된 상태의 wp-config.php 가 대체되어 있습니다.
wp-config.php 안에는 PHP의 define() 구문으로 지정된 상수와 그 값이 설정값을 갖게 되어 워드프레스 작동시 참조하게 됩니다.
.htaccess
아파치용으로 규정된 파일로, 웹서버의 작동을 제어하는 옵션들이 저장된 파일입니다. 워드프레스에 특화된 기능은 기본적으로는 고유주소 설정값이 저장되어 슬러그가 포함된 영구주소를 지정하게 하는 기능입니다.
/wp-admin
이 디렉토리 안에는 워드프레스의 관리자 모드 실행용 파일들이 저장되어 있습니다. 글을 써야 할때, 테마를 바꿔야 할때, 플러그인을 관리해야 할때와 같이 관리자 권한으로 처리해야 하는 워드프레스 기능을 실행할때 이 디렉토리를 웹브라우저로 접근하면 이 디렉토리에 있는 파일들이 중추적이 되어 관리자 모드에 진입하게 해줍니다. 워드프레스 코어의 일부입니다.
/wp-includes
이 디렉토리에는 워드프레스 코어 각각의 기능 실행시 필요한 라이브러리 파일들이 저장되어 있습니다. 프로그램의 관점에서 기능을 실행할때 자주 쓰이는 반복 루틴이 있는데 이를 규정한 파일들이 들어가있구요. /wp-admin에는 관리자 모드에 특화된 의미에서의 코어라면, /wp-includes 에는 관리자 모드 이외의 기능을 담당하는 의미에서의 코어입니다.
/wp-content
이 디렉토리에는 플러그인, 테마, 업로드된 파일들 등이 저장되는 디렉토리입니다. 사용자가 추가하는 파일들이 저장되는 장소로, 플러그인을 설치하면 이 디렉토리에 저장되고, 테마도 그렇습니다. 그리고 미디어 파일도 여기에 저장됩니다.
이들 디렉토리 구조에 의해 코어, 테마, 플러그인에 대응되는 파일들이 존재하는데요. 코어는 대개 워드프레스 재단 개발자들이 수정보완을 해서 업데이트를 발표하면 기능 향상이 됩니다. 테마는 사이트 주인이나 디자이너들이 개발하구요. 플러그인은 플러그인 개발자들이 개발합니다.
테마는 HTML과 CSS, 자바스크립트, 미디어 파일로 구성된 잘 제작된 한묶음의 파일들로, /wp-content/themes 아래 저장되며 사이트가 어떻게 보일지를 결정하며 사이트의 기능 일부를 추가해서 구현하기도 합니다.
플러그인은 워드프레스 코어가 제공하는 API를 활용해서 코어에서 제공하지 않는 기능을 제공하기 위해 만들어지는 기능 확장용 프로그램으로, /wp-content/plugins 에 저장되며 그예로 코어에서 제공하지 않는 목차 플러그인, 슬러그 길이 제한푸는 플러그인, SEO 플러그인이 대표적입니다.
한마디로 말하자면 워드프레스 설치후 코어에서 제공하지 않는 기능을 플러그인을 골라서 확장해서 쓰면 해당 기능이 추가되어 코어와 연동하는 구조입니다. 테마는 사이트의 외관을 결정하구요.
일단 이정도로만 설명하겠습니다.