나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2024-07-22 14:28:06

워드프레스


파일:나무위키+유도.png  
은(는) 여기로 연결됩니다.
설치형 블로그가 아닌 서비스형 블로그 WordPress.com에 대한 내용은 워드프레스닷컴 문서
번 문단을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
, 에 대한 내용은 문서
번 문단을
번 문단을
부분을
부분을
참고하십시오.
파일:세계 지도_White.svg 해외의 블로그 서비스
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
[[일본|
파일:일본 국기.svg
]] 일본의 블로그 서비스
[[아메바 블로그|
파일:Ameba 아이콘.svg

아메바 블로그]]
[[FC2 블로그|
파일:FC2 로고.svg

FC2 블로그]]
[[LINE Blog|
파일:LINE BLOG 아이콘.svg

LINE Blog]]
[[excite 블로그|
파일:excite 블로그 로고.svg파일:excite 블로그 로고 화이트.svg

excite 블로그]]
[[미국|
파일:미국 국기.svg
]] 미국의 블로그 서비스
[[블로거(구글)|
파일:블로거(구글) 아이콘.svg

블로거]]
[[워드프레스|
파일:워드프레스 아이콘.svg파일:워드프레스 아이콘 화이트.svg

워드프레스]]
[[워드프레스닷컴|
파일:워드프레스닷컴 아이콘.svg파일:워드프레스닷컴 아이콘 화이트.svg

워드프레스닷컴]]
[[Tumblr|
파일:텀블러 아이콘.svg

Tumblr]]
[[미디엄(SNS)|
파일:미디엄 아이콘.svg파일:미디엄 아이콘 화이트.svg

미디엄]]
[[스팀잇|
파일:스팀잇 아이콘.png

스팀잇]]
대한민국의 블로그 서비스 목록은 틀:대한민국의 블로그를 참고. }}}}}}}}}

[[블로그#s-4.3|
파일:대한민국 국기.svg
대한민국의 블로그]]
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
운영 중
[[네이버 블로그|
파일:네이버 블로그 아이콘.svg

네이버 블로그]]
[[티스토리|
파일:티스토리 아이콘.svg

티스토리]]
[[브런치스토리|
파일:브런치 아이콘.svg

브런치스토리]]
[[네이버 포스트|
파일:네이버 포스트 아이콘.svg

네이버 포스트]]
[[얼룩소|
파일:얼룩소 로고.svg파일:얼룩소 로고 화이트.svg

얼룩소]]
[[포스타입|
파일:포스타입 아이콘.svg

포스타입]]
[[빙글|
파일:빙글 아이콘.svg

빙글]]
[[위트|
파일:위트 아이콘.svg

위트 wit]]
[[달달소|
파일:daldalso.png

달달소]]
[[velog|
파일:velog 로고.svg파일:velog 로고 화이트.svg

velog]]
[[스테디오|
파일:스테디오_Steadio_로고.jpg

스테디오]]
[[창작의 날씨|
파일:창작의날씨.jpg

창작의 날씨]]
[[|

]]
[[|

]]
서비스 종료
[[다음 블로그|
파일:다음 블로그 아이콘.png

다음 블로그]]
[[플레인(블로그)|
파일:플레인 로고.jpg

플레인]]
[[파란 블로그|
파일:data_logo_Paran.gif

파란 블로그]]
[[엠파스 블로그|
파일:엠파스_로고.jpg

엠파스 블로그]]
[[블로그인|
파일:블로그인 로고.png

블로그인]]
[[이글루스|
파일:이글루스 아이콘.svg

이글루스]]
해외의 블로그 서비스 목록은 틀:블로그 서비스 목록를 참고. }}}}}}}}}

<colbgcolor=#32373c><colcolor=#fff> 워드프레스
WordPress
파일:워드프레스 로고.svg파일:워드프레스 로고 화이트.svg
개발자 WordPress 재단
출시일 2003년 5월 27일
최신버전 배포일 2023년 3월 30일
종류 오픈 소스 블로그 소프트웨어
오픈 소스 저작물 관리 시스템
작성 언어 PHP
링크 파일:워드프레스 아이콘.svg파일:워드프레스 아이콘 화이트.svg

1. 개요2. 특징3. 워드프레스로 개발된 사이트
3.1. 한국어 기반3.2. 영어 기반3.3. 일본어 기반3.4. 중국어 기반
4. 구조
4.1. 데이터 저장 구조 및 백업
5. 테마6. 플러그인
6.1. 페이지 빌더 플러그인6.2. 제트팩6.3. 우커머스6.4. 한국형 게시판
7. 워드프레스 개발
7.1. 테마 개발7.2. 차일드 테마 개발7.3. 플러그인 개발7.4. 개발 코드의 분리
8. 대한민국에서의 인식9. 관련 문서10. 외부 링크

[clearfix]

1. 개요

오픈소스를 기반으로 한 설치형 블로그 또는 CMS[1]이다.

전세계 웹사이트의 43.0%워드프레스로 제작되어 있으며, 전체 콘텐트 관리 시스템(CMS, Content Managment System) 중 64.2%의 시장 점유율을 기록 중이다. (2023년 4월 기준, 데이터 출처: W3Techs)

프로그래밍 언어인 PHP로 작성된 설치형 블로그 CMS이다.
WordPress.org는 비영리 재단에서, 가입형 블로그 WordPress.com은 영리 기업에서 소유 중이지만 WordPress.com의 개발자도 본 프로젝트에 적극적으로 참여하고 있다. 라이선스는 GNU GPL v2. 이 문서에서는 설치형 블로그인 WordPress를 중심으로 설명하고 있으므로, 가입형 블로그인 WordPress.com에 대한 설명만 따로 보고 싶다면 WordPress.com 문단을 참고하면 된다.

워드프레스 오픈소스 재단(WordPress Foundation)의 커뮤니티 가이드라인에 따라, 워드프레스의 영문 명칭은 반드시 “WordPress” (대문자 P)로 표기해야 하며, 상표권 규정에 따라 모든 웹사이트 도메인 주소에 “wordpress”를 사용해서는 안 된다. (워드프레스의 약자인 "wp"는 허용되며, 해외 유명 워드프레스 관련 블로그 및 에이전시가 도메인 주소에 "wordpress" 대신 “wp”를 사용하는 이유이다.)

설치형 블로그 중 하나인 무버블 타입이 3.0 버전을 기점으로 유료화되면서 큰 반발을 샀고,[2] 이에 무버블 타입 사용자 다수가 워드프레스로 이주하면서 상당한 세를 얻었다. 한국에서도 텍스트큐브티스토리가 활성화되기 전까지 몇몇 사람들이 사용한 바 있다. 텍스트큐브의 업데이트가 더이상 이루어지지 않음에 따라 텍스트큐브 블로거 중 일부가 워드프레스로 이주하기도 했다.

업데이트가 되면서 각종 쓸만한 플러그인이 나왔고, 단순한 블로그뿐만 아니라 웬만한 사이트를 만드는 데에 활용할 수 있을 정도가 되었다. 따라서 해외에서는 설치형 블로그가 아닌 CMS로 구분된다. 워드프레스를 기반으로 하고 플러그인을 잘 짜맞춰서 만들면 웹 표준을 따르는 사이트를 구축하기에 좋기 때문에 알게 모르게 국내도 워드프레스로 사이트를 구축하는 곳이 제법 있다.

워드프레스로 만들어진 사이트의 소스에는 메타 태그에 generator로 워드프레스가 쓰여있기 때문에, 어떤 웹사이트가 워드프레스로 만들어졌는지 확인하고 싶으면 소스를 까보면 된다.

URL을 입력하면 워드프레스 기반인지뿐만 아니라, 설치된 테마와 플러그인, 사용 중인 호스팅 서비스, 해당 웹사이트 제작 업체 등 숨겨진 사이트 정보를 알려 주는 워드프레스 애널리틱스 사이트도 있다.

사이트에서 사용하는 경로에 "wp"라는 접두어가 묘하게 많이 보인다면 99%. 간단한 사이트라면 주소 뒤에 /wp-admin을 쳐 보면 관리자 로그인 페이지로 넘어가기 때문에 이걸로 확인해 보는 방법도 있지만, 워드프레스가 워낙 여기저기 많이 쓰이다보니까 저 URL에 뜨는 폼만 집중 공격하는 봇이 존재하기 때문에 규모가 있는 사이트라면 저 URL을 바꾸거나 아니면 아예 외부에서 접속하지 못하게 막는다.

가입형 워드프레스의 관리자 페이지는 Calypso라는 이름으로 자바스크립트 기반의 Node.js + React Front-End로 갈아탔고 오픈소스로 배포된다. 덕택에 멀티플랫폼 지원이 좋아졌고 이전에 비해서 확연히 속도가 빨라졌다는 평을 듣고 있다.[3] 설치형 워드프레스는 여전히 PHP로 동작되는 wp-admin 관리자 페이지가 기본으로 적용되고, Calypso는 Jetpack 플러그인을 설치하고 어플 배포 페이지에서 데스크탑 어플을 설치해서 사용해야 한다.

5.0 버전으로 업데이트되면서 기존의 TinyMCE를 버리고[4] 구텐베르크라는 새로운 에디터로 탈바꿈하였다. 새로운 블록 방식의 에디터로 현대적인 디자인으로 개발되었지만 반응은 호불호가 갈린다.[5]

구텐베르크의 최고 단점은 자바스크립트 기반으로 작성되어 기존의 PHP 방식의 에디터용 플러그인이 더 이상 지원되지 않는다는 것이다. 말 그대로 지금까지 써왔던 방법을 갑작스럽게 바꾸어버린 것이다. 애초에 구텐베르크 에디터를 플러그인으로 지원했어야 한다는 의견도 있다. 시간이 지나면 나아질지는 불명이다.

2. 특징

3. 워드프레스로 개발된 사이트

워드프레스 공식 홈페이지(WordPress.org)에서 제공하는 WordPress Website Showcase워드프레스 사이트 랜덤 뷰어 사이트를 통해, 워드프레스로 제작된 국내(한국) 및 해외(미국, 유럽, 일본, 중국 등) 사이트 구축 사례를 확인할 수 있다. (워드프레스 REST API를 활용한 WaaB(WordPress-as-a-Backend) 사이트 포함)

3.1. 한국어 기반

3.2. 영어 기반

3.3. 일본어 기반

3.4. 중국어 기반

4. 구조

파일:워드프레스 테마 플러그인 구조 설명.png

워드프레스는 코어(Core), 테마(Theme), 플러그인(Plugin)으로 구성되어 있다. 자동차를 예로 들어 쉽게 말하자면 코어는 엔진, 테마는 외관, 플러그인은 액세서리라고 생각하면 된다. 워드프레스 코어는 워드프레스 공식 한국사이트에서 다운로드할 수 있다. 워드프레스는 업데이트를 수시로 하기 때문에 코어 파일을 바꾸면 절대 안 된다. 바꾼 후부터는 업그레이드를 하면 수정한 파일들이 다 날아가 버리는데, 수정을 하지 않으면 이후에 나오는 모든 플러그인과 테마를 제공받지 못 한다. 사실 플러그인의 확장성이 좋아서 코어를 수정할 일은 어지간해서는 없다.

4.1. 데이터 저장 구조 및 백업

위의 설명 어디까지나 웹사이트가 동작하기 위한 PHP 파일 구성의 구조에 대한 것이고, 글이나 이미지 등의 업로드 파일과 같은 사용자 데이터는 별도로 생각해야 한다.

이미지와 같은 업로드 파일은 따로 다른 설정을 하지 않았다면 /wp-content/uploads/폴더에 있으므로 이 폴더를 백업하면 업로드 파일을 백업할 수 있다.

글이나 카테고리 설정, 그리고 사이트 설정과 같은 것들은 데이터베이스[8]에 DB로 저장되어 있다. 따라서 데이터를 백업할 땐 업로드 파일뿐만 아니라 이 DB를 덤프 파일로 빼내어 백업해야 한다. 그렇지 않으면 업로드 파일만 복원하게 되어 사이트에 글이 하나도 없게 된다.

데이터 백업 및 복원 작업은 서버[9]를 다루는 지식이 필요한데, 보통의 사용자는 할 수 없을 것이므로 워드프레스 데이터 백업 플러그인의 도움을 받는 것이 일반적이다. 또는 자신이 사용하는 웹호스팅 업체나 VPS 서비스 업체에서 제공하는 서버를 통째로 백업하는 기능을 사용하게 된다.[10]

5. 테마

테마는 티스토리 블로그의 스킨과 같은 블로그의 외관을 말한다. 하지만 워드프레스의 테마는 기능과 확장성, 그리고 자유도는 티스토리의 스킨 기능을 훌쩍 뛰어 넘는다.

워드프레스 테마는 "자신이 원하는 디자인이 만들어져 있는가"가 중요한데, 자신의 요구에 딱 맞춰진 테마를 찾지 못하면 비슷한 테마를 골라서 PHP 코드를 수정해 자기 입맛에 맞게 고치는 작업을 해야 하기 때문이다. Themeforest 등 상업적 마켓에서 유료로 구입해 사용할 수도 있으며, 워드프레스 공식 배포처에서 무료로 배포되거나 워드프레스 관리자 페이지에서 검색해 나오는 테마를 설치할 수도 있다.

유명한 유료 테마의 경우 그 테마만의 사용 방법이나 설정 및 기능을 따로 공부해야 할 정도로 기능이 방대하다.[11] 유료 테마를 사용하는 이유 중 7할은 미리 테마 개발사에서 준비한 스타일로 손쉽게 멋진 사이트를 꾸미기 위해서인 것이고, '검색 최적화'에 대한 막연한 기대감이 1할, 나머지 커스터마이징이나 기능 추가가 2할이라고 볼 수 있다. 영어로 된 문서를 읽어가며 해당 테마를 공부하는 하는 것도 일인 데다 테마가 제공하는 기능이 꼭 필요한 경우는 별로 없기 때문인데,[12] 대부분의 사용자는 개발사가 미리 준비한 데모 디자인을 보고 내가 원하는 디자인과 가장 근접한 것을 찾는 게 테마 설정이나 수정 및 이에 대한 공부를 최소화할 수 있기 때문이다.

테마 수정은 차일드 테마 개발을 통해서 할 수 있지만 어렵다. 차일드 테마는 PHP를 다룰 줄 알고 워드프레스 API를 공부한 개발자의 영역이지, 일반 사용자들이 할 수 있는 부분은 절대 아니다.[13] 차일드 테마 개발에 대한 설명을 보고 싶다면 워드프레스 개발 문단을 참고하면 된다.

하지만 일부 워드프레스 개발자 블로거들의 정보 공유를 통해 차일드 테마 폴더를 만드는 방법과 특정 부분을 수정하는 방법이 공유되기도 해서 일반 사용자들이 그대로 해당 부분만 따라 수정해서 쓰기도 한다. 그러므로 테마 선택은 "해당 테마를 사용하고 정보를 공유하는 블로거 등 얼마나 큰 사용자 커뮤니티가 형성되어있는가" 또한 중요 포인트이다. 자신에게 맞는 수정이 꼭 필요하다면 재능마켓 등에서 개발자를 구해 수정을 의뢰할 수도 있겠다.

최근엔 엘리멘터의 유료 기능을 사용하면 페이지 편집기 개념의 엘리멘터를 테마 편집기 수준까지 기능을 확장하고 엔바토 엘리멘츠와 같은 기능을 연동하면 아예 테마부터 직접 사용자가 조합하는 것도 불가능하진 않게 되었다.

6. 플러그인

워드프레스 플러그인
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin-bottom: -15px;"
<colcolor=#ffffff> 주요 필수 플러그인
페이지 빌더 및 에디터
한국형 게시판
테이블 제작
문의 양식 제작
백업 및 복원
날짜 및 시간 관련
슬라이드 제작
지도 제작
기타 플러그인
||
}}}}}} ||


워드프레스는 여러 가지 플러그인(plugin)을 설치해서 기능을 확장시킬 수 있다. 여기에서 '기능'이라 하면 웹사이트에게서 상상할 수 있는 모든 것이라 할 수 있다.본문에 영향을 주는 것일 수도 있고, 방문자에게는 보여지지 않는 기능(통계, 가입자관리, 데이터백업, SEO 등)을 위한 플러그인도 많다. 테마(겉모습)에 영향을 주거나 심지어 테마가 해야 할 것을 플러그인이 하는 경우도 있는데 대표적으로 커스텀 CSS를 삽입하는 플러그인 같은 것들이 있다.

무료 플러그인은 플러그인 디렉토리[14]에서 다운로드할 수 있는데, 수만 가지 이상의 플러그인이 무료다. 무료로 제공되는 워드프레스 플러그인은 홈페이지와 워드프레스 관리자 페이지에서 검색으로 바로 설치할 수 있고, codecanyon에서 판매하는 유료 플러그인을 구매할 수도 있으며, 또한 유료 테마를 구매하면 테마와 함께 사용될 수 있는 플러그인이 포함되어 있기도 하다.

무료 플러그인이라고 해도 고급 기능 차별화를 통해서 유료 버전 구매를 유도하는 것들이 많다. 유료 버전의 플러그인의 구입 또는 구독 가격은 원화로 환산하여 약 2만~8만원대 정도(구독제의 경우 1년 사용 기준 가격)이다. 유료 버전의 기능이 자신에게 필요한지를 고민하고 구매하면 되는데 이는 또 다른 무료 플러그인을 추가 설치해서 대체할 수 있는 경우도 많다.

6.1. 페이지 빌더 플러그인

먼저 워드프레스 사용에서 필수적인 두 가지 개념이 있는데, 워드프레스에는 수많은 포스트 타입이 있는데 그중 대표적인 두 가지가 일반적으로 '블로그 글'을 작성하는 'Post(포스트)'이고, 홈페이지(대문)나 랜딩 페이지를 만드는데 쓰이는 'Page(페이지)'가 있다. 그 중에서 페이지는 기본적으로 테마 개발자가 준비한 페이지 템플릿을 기반으로 한 페이지의 본문글을 표시하는데, 그것만으로는 멋진 페이지를 만들 수 없으므로 페이지 빌더 플러그인을 사용한다.

워드프레스의 대표적인 페이지 빌더로는 WPBakery(구 Visual Composer)[15], Beaver Builder, Divi Builder, Elementor 등이 있다.

페이지 빌더는 대부분 코딩 없이 드래그 앤 드롭으로 블로그형태가 아닌 다른 웹사이트처럼 보이는 웹페이지를 만들 수 있게 해준다. 페이지 예시1, 예시2

일부 유료 테마에는 페이지 빌더가 포함되어 있기도 하고 Elementor처럼 별도의 페이지 빌더 플러그인을 설치할 수도 있다.[16]

6.2. 제트팩

제트팩 플러그인은 워드프레스 공식 사이트에서 제공하는 플러그인으로서 다양한 기능을 가지고 있지만 그만큼 사이트를 느리게 만드는 주범이기도 하다.

설치형 워드프레스 사용자도 wordpress.com 계정을 연동하면 wordpress.com에서 자신의 블로그를 관리할 수 있는데 wordpress.com의 블로그뿐만 아니라 다른 설치형 워드프레스 블로그와도 해당 계정으로 댓글 소통이 가능하다. 물론 상대 블로그에서도 wordpress.com 계정 로그인을 지원하는 댓글 창을 사용 중일 때 가능하며, 이런 계정연동이 제트팩 플러그인의 대표적인 기능 중 하나이다.

제트팩 플러그인에서 지원하는 댓글창을 사용하면 방문자들이 wordpress.com 계정과 구글계정, SNS 계정으로 로그인해서 댓글을 남길 수 있어서 설치형 워드프레스 사용자끼리의 소통창구가 되기도 한다.[17]

또한 워드프레스 공식 모바일 앱(iOS, 안드로이드)을 사용하면 이런 계정 연동을 통해서 설치형 워드프레스 블로그, 사이트에서도 방문자 댓글에 대한 푸시 알림을 모바일로 받을 수 있다. 설치형, 가입형 상관없이 남의 블로그에 wordpress.com 계정으로 댓글을 달았다면 이 역시도 답댓글에 대한 알림이 이 앱으로 온다.

6.3. 우커머스

워드프레스는 우커머스(WooCommerce)라는 플러그인을 설치하여 인터넷 쇼핑몰처럼 만들 수 있다. 주소는 여기이다. 워드프레스 사이트에 쇼핑몰 기능을 넣으면 반드시 설치하게 될 플러그인 1위이다. 웬만큼 큰 유료 테마나 플러그인들 대부분 우커머스 플러그인과의 연동, 호환성 보장을 고려할 정도로 쇼핑몰 표준으로 쓰이는 플러그인이다.

6.4. 한국형 게시판

초창기에는 한국에서 사용할 때 가장 큰 걸림돌이 된 것이 다름 아닌 한국형 게시판이었다. 한국의 웹 환경에서 게시판은 외국과 완전히 다른 형식으로 발전하다보니 외국산 게시판 플러그인은 그대로 쓰기가 힘들었다. 마개조를 하거나 새로 플러그인을 만들거나 해야 하는데 제로보드그누보드급의 기능을 가진 게시판은 제작 난이도도 만만치 않았다. 따라서 초창기에 나온 여러 한국형 게시판 플러그인은 단순한 글쓰기와 간단한 회원관리 기능만 제공할 정도로 퀄리티가 낮았고, 그나마도 얼마 안 가 개발을 중단하고 사라지거나 했다.

그러나 이제는 옛날 이야기로, 꽤 괜찮은 기능을 가진 한국형 게시판 플러그인이 나와서 꾸준히 업데이트되고 있다.

초창기부터 꾸준히 발전한 한국형 게시판 플러그인은 코스모스팜에서 제작한 KBoard가 있다. 초창기에는 기능이 정말로 보잘것 없었지만 계속 업데이트되면서 준수한 기능을 가진 플러그인이 되었고, 가장 많이 사용되는 워드프레스 플러그인이 되었다. 사용자 요구도 많이 반영되어 커뮤니티 사이트에서 사용하기에도 무리가 없는 수준이다. 영덕군, 페이게이트, 현대자동차그룹, 태안인터내셔널, 대한산업보건협회, SK 등 크고 작은 기업과 공기업에서도 많이 사용하고 있다. 이러한 장점들 덕인지 가비아 워드프레스 호스팅에 기본 탑재된 상태다. 단점은 일부 기능(대표적으로 회원가입 및 관리 기능)이 유료라 다른 한국형 게시판과 거의 같은 기능의 커뮤니티를 구성하려면 비용이 들어간다. 복잡한 커뮤니티와 회원 시스템을 지향한다면 K보드를 기반으로 하기는 힘들고 BB Press와 WP Members 플러그인을 조합하는 전통적인 워드프레스 방식의 구현을 따르는 것이 가장 쉽고 빠른 길이지만 기능 구현 방식이 기존 한국식 게시판과는 접근이 판이하게 달라서 배우는데 어려움이 있을 수 있다.

그누보드에 쇼핑몰을 얹어서 워드프레스 플러그인으로 구현하는 그누커머스가 있었다. 그누보드 5와 영카트 5의 기능 대다수를 거의 유사하게 옮겨온데다 모든 기능이 무료이기 때문에 쇼핑몰 + 게시판 구현 용도로는 상당히 좋은 편이었다. 한국에서 그누보드의 위상을 생각해보면 이쪽도 좋은 선택. 단점은 기존 그누보드 5의 DB와 스킨은 옮겨올 수 없다. 현재는 개발이 중단된 상태다.

7. 워드프레스 개발

워드프레스 개발 분야는 대표적으로 테마 개발과 플러그인 개발이 있다.

코어 파일은 건드리지 않는 것이 원칙이다. 코어 파일의 수정이 필요하다고 생각된다면 wordress.org와 Wordpress Codex에서 오픈소스 커뮤니티 활동을 통해 직접 기여해야 하는 것이 옳다.[18] 하지만 일부는 워드프레스 코어 까지 개조해서 자신만의 커스텀 CMS를 개발하기도 한다. 그런 경우 워드프레스 자체 업데이트 기능은 쓰지 말아야할 것은 물론이고 유지보수도 직접 해내야 하므로 오픈소스 커뮤니티에 의한 혜택(보안패치 등)은 더 이상 없게 된다[19].

워드프레스 플랫폼의 개발 특징으로는 대표적으로 차일드테마 개발 방식과 함께 액션과 훅이라는 개념 그리고 치환자 역할인 쇼트코드 등이 있다.

워드프레스 코어에 있는 그리고 활성화되는 모든 테마와 모든 플러그인에 있는 각각의 함수 이름은 유일하거나 같은 이름을 두려면 PHP의 네임스페이스 문법을 사용해야한다.

7.1. 테마 개발

자신의 워드프레스 테마를 처음부터 끝까지 만드는 것이다. 테마의 주요기능은 사이트의 겉모습이므로 미적으로 아름답거나 편해야하는 등 디자인 철학적인 접근이 필요하며, 반응형 디자인이 필수일 뿐만 아니라 워드프레스 테마 시장에서는 사용자들의 SEO(검색최적화)에 대한 기대 요구가 높으므로 그에 대한 이해와 개발 능력이 장점으로 작동한다. 워드프레스 사용자들이 목적에 따라 필수적으로 사용하는 다른 플러그인(우커머스, BBPress 등) 지원과 호환성도 고려하는 것이 좋다.

또한 사용자를 위한 페이지 템플릿 또한 몇 가지 준비해둬야 하는데, 헤더 + 사이드바 + 푸터가 있는 기본 템플릿, 헤더 + 푸터만 있는 Full Width 템플릿, 아무것도 없는 빈 페이지(Empty) 템플릿까지 3가지 정도 만들어두는 게 기본이다.

구글 AMP나 페이스북 인스턴트 아티클 페이지 또한 고려사항인데 이런 것들은 테마에서 자체 지원하지 않더라도 사용자가 공식 또는 관련 플러그인을 설치한다면 해당 플러그인이 알아서 만들어준다. 하지만 그런 페이지에서도 자신의 테마 스타일을 반영하고 싶다면 테마 개발자가 지원 기능을 추가 개발해야 한다.

많은 유료 테마들은 함께 쓰면 좋은 플러그인들도 함께 배포하곤 하는데 대표적으로 페이지 빌더와 구글 AMP를 위한 플러그인 또는 별도의 모바일 테마 플러그인을 많이 포함시킨다. 페이지 빌더까지 자체적으로 만들어 테마에 배포하는 테마 개발자들도 있지만 대부분은 다른 유명 플러그인을 포함시킨다.[20]

사용자를 위한 테마 설정 창의 경우 워드프레스 공식 지원방식인 테마 디자인 → 사용자 정의하기에 들어서서 설정하는 방식만을 사용하도록 할 수도 있고, 별도의 메뉴로 테마 설정 화면을 만들어 둘 수도 있다.

워드프레스의 포스트 타입 중에서는 커스텀 포스트 타입(CPT)라는 것도 있는데 CPT에 대한 지원 여부도 고려해야 할 사항이다. CPT를 사용하는 것 자체가 워드프레스 고급 기능 사용자측에 해당되긴 하지만 테마가 CPT를 전혀 지원하지 않을 경우 최근글 목록이나 카테고리글 목록에 CPT로 지정된 글이 나오지 않는 등의 문제가 있을 수 있다.

7.2. 차일드 테마 개발

부모 테마의 파생 버전을 만드는 차일드 테마 개발 방식은 주로 남이 만든 테마에서 일부분만 변경할 때 사용되는 워드프레스 테마 개발 방법이다.

워드프레스 차일드 테마 빌더 사이트에서 부모 테마에 대한 정보를 입력해서 간단하게 자식(차일드) 테마를 생성 및 다운로드할 수 있다.

상기했듯 무료든 유료든 어떤 테마를 골랐다면 차일드 테마 개발을 통해서 테마의 일부분을 수정하거나 보충할 수 있다. PHP 개발자이더라도 워드프레스라는 플랫폼에서의 개발 방법론을 먼저 공부하지 않으면 무턱대고 자신이 구매한 원본 테마(부모 테마) 파일을 수정하는 초보 워드프레스 개발자들이 있곤 한데 이는 유지보수 측면에서 대단히 잘 못된 방법이다. 부모 테마는 테마 개발사가 꾸준히 업데이트를 하게 되고 그때마다 변경될 파일이 덮어쓰여지고 수정되면 자신이 작성한 코드가 사라지게 되거나 꼬이게 되기 때문이다.

부모테마의 PHP파일 중 수정하고 싶은 파일만 차일드테마 폴더(패키지)쪽으로 가져와서 수정하고 별도의 자신의 함수가 필요하다면 차일드테마쪽의 functions.php에 넣는 식이다. 부모테마가 업데이트되어도 차일드테마 폴더는 변경되지 않기때문에 자신의 코드를 잃게 되지 않는다. 그리고 부모테마의 버전업이 마이너라면 대개 이상없이 돌아가거나 새로운 부모테마 버전과 자신이 만든 차일드 테마 호환성이 깨지더라도 자신의 차일드테마 파일만 수정하면 된다.

7.3. 플러그인 개발

PHP 개발자라면 워드프레스 플랫폼의 개발방법론과 API를 학습 후 자신만의 플러그인을 개발할 수도 있다.

테마 개발에서는 위에 기술한 차일드 테마라는 개념을 통한 표준 파생 버전 개발방법론이 있는 것과는 다르게 플러그인은 독립적이라서 남이 만든 플러그인의 파생 버전을 만드는 방법이 딱히 없다. 다만 (당연하겠지만) 코드를 베끼는 방식을 통해 원본과는 다른 자신만의 플러그인을 독립적으로 만들 수는 있겠다. 그리고 일부 플러그인[21]은 해당 플러그인만의 API를 제공하기도 하므로 개발사 홈페이지에서 문서를 참고해 그 기능을 확장해주는 플러그인을 만들 수 있다.

워드프레스 글쓰기 에디터인 고전 편집기나 구텐베르크 에디터 또한 API가 존재해서 글쓰기 툴바에 새로운 버튼을 넣거나 새로운 블록을 만들어주는 확장 플러그인도 만들 수 있다. 글쓰기 에디터 하단이나 오른쪽에 있는 설정 상자들은 '메타박스'라고 불리는데 새로운 메타박스를 넣어주는 플러그인도 개발 할 수 있다.

7.4. 개발 코드의 분리

위처럼 테마와 플러그인 개발은 분명 나누어져 있는 것처럼 보여도 사실은 코어, 플러그인, 테마의 모든 PHP 코드는 서로 함께 동작하기 때문에 플러그인의 함수를 테마 파일에서 사용해도 동작한다. 그래서 플러그인으로 따로 나누어야 할 기능이나 함수 코드를 테마 쪽 파일에 작성하기도 하고 테마에서만 쓰는 함수를 차일드 테마의 functions.php에 넣지 않고 자신의 개발 플러그인 파일에 넣기도 할 수 있다.

이런 것은 PHP라는 언어 특성 때문에 작성하는 사람에 따라 코드가 지저분해질 수 있는 것인데, 훌륭한 개발자라면 코드와 함수의 목적에 맞게 분리하는 것이 좋을 것이다.그러므로 진지하게 할 것이라면 워드프레스 개발 방법론을 먼저 학습하고 워드프레스 개발을 시작하는 것을 추천한다.

8. 대한민국에서의 인식

이렇게 자유도 높고 무궁무진한 가능성을 가진 워드프레스이지만, 한국 웹상에서는 인지도가 낮은 편이다. 한국에서 워드프레스의 보급이 부족한 원인은 크게 두 가지 정도로 꼽을 수 있겠는데, 언어 지원과 필요한 기능을 찾아서 설치하는 문화적 차이 정도로 볼 수 있다.

워드프레스는 영어로 제작된 기능들이 대부분이고 번역된 테마, 플러그인이 거의 없어 영어에 능숙하지 못하면 이용하기 힘들 수 있으며, 한국어로 번역됐다는 테마의 경우도 까보면 누구나 해석할 수 있는 수준의 메뉴 이름 정도만 해석되어 있고, 그마저도 제공하지 않는 테마들이 90%다.

이에 더해 모든 것을 블로거 스스로 해결해야 하는 것은 진입장벽을 더욱 높인다. 네이버 블로그, 다음 블로그 같은 가입형 블로그카페24 등에서 제공하는 쇼핑몰의 경우 최소한의 커스터마이징을 제외하고는 사용자가 건드릴 것이 없다. 그러나 워드프레스는 회원 가입 및 회원 관리조차 기본 기능이 부족하다보니 추가적으로 플러그인을 설치해야 원하는 기능을 구현할 수 있다. 또, 블로그와 포트폴리오를 사용하려면, 아무 것도 설치되지 않은 상태에서는 이미지를 올려도 바로 적용되지 않기 때문에 Auto Post Thumbnail 플러그인 같은 것을 깔아야 글에 첨부된 이미지가 섬네일로 자동 반영된다. 그리고 이 모든 것들을 해결할 때, 국내 사용자들이 포스팅해놓은 정보 글에서 얻을 수 없는 문제를 해결하길 원한다면 영어로 구글에 검색을 해서 해결하거나 제작자와 직접 대화를 해야 한다.

요컨대 워드프레스는 플러그인들과 테마로 무궁무진한 커스터마이징을 가능하게 해두었지만 그 설명서가 사실상 영어로만 제공되기에 영어에 취약한 사람들에겐 워드프레스는 쉽게 진입할 수 없는 그림의 떡인 것이다. 그래도 유저들이 꾸준히 늘어가고 있고, 워드프레스만 전문적으로 강의하는 학원들도 하나씩 생겨나고 있다. 요즘은 무료 플러그인 우커머스를 설치한 쇼핑몰 사이트도 늘어나고 있다. 쇼핑몰의 경우는 KG이니시스, NHN KCP, LG U+, PayGate 사에서 만든 워드프레스용 결제 플러그인을 사용할 수 있다.

참고로, 워드프레스를 플러그인 하나 없이 사용하는 건 엔진만 달랑 있는 깡통차를 운행하는 것과 같다. 코어에서 기본 지원하는 블로그로 운영하더라도 플러그인이 없으면 다른 서비스형 블로그보다도 기능이 떨어지고, 어느정도 운영하다보면 스팸의 공격에 시달리는 것을 볼 수 있다. 스팸 공격을 방지하는 것도 Akismet이라 하는 플러그인이기 때문[22]. 따라서 일반적인 라이믹스그누보드 혹은 티스토리 처럼 사용하려면, 워드프레스에 필수 플러그인을 최소 10개 정도 깔아줘야 쓸 만하다. 하지만 단순 포스팅만을 목적으로 하는 블로그가 아닌 게시판 등의 기능을 가진 기업 웹사이트일 경우 15~20개, 쇼핑몰 기능까지 탑재할 경우 20~25개 수준까지 늘어나기도 한다. 물론, 이것은 워드프레스라는 도구에 능숙하지 못한 사용자들일 경우의 이야기이며, CSS를 다룰 줄 알고 편집 기능에 손을 대는 방법을 배우게 되면 쇼핑몰을 구축하는데도 15개 전후로 충분히 가능할 수 있다.

대한민국에서 워드프레스로 제작된 홈페이지는 케이크스퀘어, 브랜드웨이브, GS칼텍스, 현대종합상사가 있고, 구 국민의당과 그의 후신인 바른미래당,[23] 민주평화당 등 또한 워드프레스로 제작되었다. 소프트웨어 개발사의 경우 계열 사이트들을 대부분 워드프레스로 구현하고 있기도 하다.(#1, #2, #3) 또한 코레일에서 만든 철도 모형 제작 자회사인 디테일드케이도 워드프레스를 사용한다. #[24]

많은 한국의 회사들이 소프트웨어에 대한 이해도 부족하고 한국에서 필요한 기능들도 아직 턱없이 부족한 상황에서 어설프게 세계 언론사의 유행을 따르려는 것인지 워드프레스로 업데이트를 했다가 사이트 로딩 속도, 디자인, 커뮤니티 기능 등 모든 부분에서 형편없는 퀄리티를 보여주는 바람에 XpressEngine으로 재이주하는 해프닝을 겪기도 했었다.
최근에는 튜닝 자유도가 높고 우커머스 연동이 가능하여 함께 국내 사용자들 사이에서 개발팁이 많이 공유되면서 과거에 비해 이용자가 상당히 늘어났다. 특히나 기업형 블로그를 운영하고 싶은데 무료로 설치가 가능하고 몇가지 퍼블리싱 지식만 있으면 운영 가능한 프레임워크가 몇 없는 상황이라 울며 겨자먹기로 워드프레스를 설치해서 운영하는 추세다.

라이믹스, 그누보드와 같은 국산 CMS는 국내 게시판 환경에 맞춰져 있지만 워드프레스는 블로그에 좀 더 가깝다. 또한 많은 플러그인을 적용하면 로딩시 속도가 느려지는데다 국산 CMS 인 그누보드, 라이믹스와 비교해서 워드프레스는 느리기 때문에 선택을 덜받고있다. 워드프레스의 다양한 테마 등을 사용하고 찾으려면 영어의 벽을 무조건 극복하고 파고들어야 하는 변화의 양상은 아쉬운 점이라고 할 수 있다.

9. 관련 문서

10. 외부 링크



[1] Content Management System: 콘텐트 관리 시스템[2] 3.2 버전에서 다시 무료화된 상태이다.[3] Calypso가 나올 2015년 당시에는 PHP 7이 나오기 이전이라 속도가 확연히 느렸지만, PHP 7 출시 이후에는 속도면에서는 별 차이가 없어졌다.[4] 플러그인으로 전환되어 기존 에디터를 사용하려면 따로 설치해야 한다.[5] 사실 구텐베르크 에디터를 반대하는 사용자가 압도적이다...[6] 재미있게도, 가짜 스팸에 대해서는 '햄'이라고 부른다. 스팸 차단율은 뛰어나지만 돈을 받는다. Pro 서비스가 한달에 5달러 정도로, 비싸지는 않은 편. 물론 비상업적으로는 무료다.[7] 물론 이 플러그인이 워드프레스 전용은 아니고 다른 웹사이트에서도 API를 통해 쓸 수 있다. 티스토리도 플러그인으로 이걸 쓸 수 있다.[8] 서버에 설치되는 별도의 프로그램. MySQL, MariaDB[9] 대부분 리눅스[10] AWS Lightsail에서는 스냅샷이라는 기능을 제공하듯이...[11] 이걸 설명하는 문서는 대부분이 영어다.[12] 어떤 기능이 필요하다면 차라리 플러그인으로 더 많은 것을 더 자유롭게 할 수 있다.[13] 자신이 프로그래밍의 ㅍ자도 모른다면 매일 일정시간 집중이 가능한 학생 기준에서 방과후 시간 할애를 통해 PHP 공부 6개월, 워드프레스 API 공부 3개월 정도는 해야 손댈 수 있을 것이다. 타 직종에서 매일매일 생존하기 바쁜 직장인 기준에서는 적어도 1년은 투자해야 할 것인데 대개 지쳐서 프로그래밍 공부를 포기하게 된다.[14] 무표 플러그인을 다운로드할 수 있는 앱스토어라고 이해하면 된다.[15] Visual Composer vs. WPBakery 차이점 (프레스캣)[16] Elementor를 따로 깔아 쓰는 사람이 늘어나고 심지어 이게 테마랑 충돌 난다고 테마 제작자에게 항의가 들어오는 일이 많아지자 아에 Elementor로 테마를 작성해버리고 페이지 기본 편집기도 이걸로 내장해버리는 테마 제작자들도 늘어나고 있다. 그리고 이 정도까지는 아니더라도 최소한 Elementor와 충돌은 안 나는 수준의 업데이트는 기본으로 진행하고 있다.[17] 그러니까 자신의 wordpress.com 계정 프로필에 자신의 블로그 도메인을 등록하도록 하자.[18] 영어를 할 줄 알아야 하고, 남의 코드를 볼 줄 알아야 하고, Git을 쓸 줄 알아야 한다.[19] 사실 코어 파일 수정은 다른 CMS에서도 비권장하는 방식이다. XE도 모듈이나 애드온으로 구현하라고 권장하고 있고, 코어 파일 수정이 활발하던 그누보드도 5.4에서 워드프레스와 비슷한 HOOK 기능을 도입하면서 권장하지않는 방향으로 궤도를 수정했다.[20] 남의 플러그인을 자신의 테마 패키지에 넣어서 함께 배포하려면 라이선스를 검토해야한다.[21] 대표적으로 글쓰기 편집기 ACF나 Elementor 같은 플러그인.[22] 이 플러그인은 5.x 버전부터 기본으로 설치된다.[23] 바른미래당 웹사이트를 들어가 보면 "다른 워드프레스 사이트"라고 뜬다.(...)[24] 홈페이지의 기능이 매우 표준적인 것들밖에 없는데 이런 걸 괜히 JavaC# 같은 도구를 가지고 작업하던 SI 개발사가 자체 프레임워크로 맨 땅에서부터 구축을 시작하면 작업 기간이나 비용이 한도 끝도 없이 올라간다. 반면 워드프레스 같은 경우엔 테마부터 시작해서 손쉽게 적용할 수 있는 퀄리티 괜찮은 에셋들을 싼 값에 구입해서 조합해도 결과물이 나오니 더 낮은 가격에 사업 입찰이 가능해지는 것.