Top

워드프레스 플러그인과 테마 만들기 [소스코드 분석부터 블로그 마케팅까지]

  • 원서명Professional WordPress®: Design and Development (ISBN 9780470560549)
  • 지은이할 스턴, 데이빗 댐스트라, 브래드 윌리엄스
  • 옮긴이이정표
  • ISBN : 9788960773738
  • 35,000원
  • 2012년 12월 21일 펴냄
  • 페이퍼백 | 540쪽 | 188*250mm
  • 시리즈 : 웹 프로페셔널

책 소개

이 책은 워드프레스의 기초부터 활용까지를 폭넓게 다루는 입문서다. 워드프레스의 기초, 내부 코어 소스 및 데이터 구조를 순차적으로 학습하며, 플러그인과 테마를 이용해 워드프레스를 확장하고 개인화하는 방법을 보여준다. 이미 설치된 워드프레스를 이용하려는 일반 사용자, 플러그인을 제작하려는 개발자, 테마를 정교하게 다듬고자 하는 디자이너, 워드프레스를 대기업의 콘텐츠 관리 시스템으로 사용하려는 전문가, 검색 엔진 최적화(SEO)와 보안 등에 관심이 있는 운영자에게 도움이 되는 방법과 실제 사례를 제공한다.


[ 소개 ]

워드프레스의 강력한 성능과 가능성을 자세히 알아보자

오늘날 전 세계인이 가장 많이 사용하는 설치형 블로그 소프트웨어인 워드프레스! 다루기 쉽고 확장하기 편리하며 다른 어떠한 애플리케이션과의 결합도 가능하다.

이 책은 워드프레스의 내부 구조 분석, 코어 소스 추적, 데이터 모델 학습의 과정을 통해 워드프레스를 독자의 입맛대로 구성할 수 있도록 자세히안내한다.

오픈소스 플러그인과 테마 및 도구들을 직접 개발하고 배포해 온 전문가들로 구성된 저자진은 워드프레스를 설치해 사용하는 개인 블로거뿐만 아니라 대규모의 기업형 콘텐츠 관리 시스템 관리자에게도 유용하고 깊이 있는 내용들을 전달한다.


[ 이 책에서 다루는 내용 ]

■ 워드프레스의 기초와 페이지가 출력될 때까지의 과정
■ 워드프레스 내부의 코어 소스와 데이터 구조를 순차적으로 학습
■ 플러그인과 테마를 이용해 워드프레스를 확장하고 개인화하는 방법
■ 개발자 관점에서의 사용성과 최적화를 서비스 배포 시 필요한 성능과 보안, 측정과 결합하는 방법
■ 워드프레스를 기업용 툴이나 SNS와 연결하는 실제 사례


[ 이 책의 대상 독자 ]

워드프레스로 개인 블로그를 만들고 글을 작성한 다음 인터넷에 공개하는 것은 아주 쉽다. 그러나 대중을 위한 서비스를 구축할 때는 좀 더 자세하고 폭 넓은 이해가 필요하다. 이 책을 쓰게 된 이유는 바로 이와 같은 워드프레스의 이중성 때문이다. 시중에 나와 있는 초보 블로거를 위한 워드프레스 안내서는 단순히 워드프레스로 만든 사이트의 글을 작성하고, 관리하며, 유지보수하는 기본 기능에 대한 설명만을 제공한다. 이 책을 쓴 목적은 매뉴얼을 읽는 것보다는 워드프레스 코덱스(Wordpress Codex)가 훨씬 익숙한 PHP 전문 개발자와, 블로그를 소셜 네트워킹 사이트와 연결하고 화면 디자인을 바꾸는 정도만 활용하는 일반 사용자 사이의 간극을 줄이려는 것이다.

간단히 말하자면, 워드프레스 테마를 정교하게 다듬는 데 관심이 있는 독자부터 워드프레스를 대기업의 콘텐츠 관리 시스템으로 사용하려는 전문가까지 광범위한 분야의 개발자에게 도움이 되기를 바란다. 따라서 워드프레스의 코어부터 주변기능까지 하나씩 살펴볼 것이다. 이 책에서는 하나는 기능의 기본 동작을 자세히 알아본 후, 예제를 통해 다양한 필요에 맞는 기능을 어떻게 분해 및 조립할 수 있는지를 설명했다. PHP 개발에 익숙하지 않은 워드프레스 사용자는 개발자를 대상으로 설명한 부분은 건너뛰고 읽어가도 좋다. 워드프레스용 테마나 플러그인을 개발하는 데 코드가 필요한 사용자는 책의 중반부부터 시작하는 것을 추천한다.


[ 이 책의 구성 ]

이 책은 크게 세 부분으로 나눌 수 있다. 1장부터 4장까지는 워드프레스의 개요와 주요 기능 요소, 그리고 워드프레스에서 웹페이지를 출력할 때 내부에서 어떤 일이 진행되는지를 개괄적으로 설명한다. 5장부터 8장까지는 워드프레스 코어로 좀 더 깊이 들어가서 내부의 소스코드와 데이터 구조에 대해서 설명한다. 이 부분은 특히 개발자를 대상으로 했으며, 플러그인을 통한 확장과 테마를 사용자화하는 방법에 대해 깊숙이 설명한다. 9장부터 15장까지는 마지막 부분으로 개발자의 관점으로 본 사용자 경험과 최적화에 대해서 다루고, 이용자 입장에서 성능과 보안과 기업용으로 활용하는 방안에 대해서 알아본다.

각 장별로 어떤 내용을 다루는지 구체적으로 알아보자.

1장, '첫 글 올리기'에서는 워드프레스 소프트웨어의 역사와 자주 이용하는 호스팅 옵션, 콘텐츠 중심 환경에서 커뮤니티가 중요한 이유 및 워드프레스의 설치와 디버깅 방법에 대한 기초 지식을 설명한다.

2장, '워드프레스의 기능'에서는 일반 사용자가 블로그 포스트를 작성하고, 편집하고, 시스템을 관리하는 도중에 접하게 되는 워드프레스 시스템의 주요 내용에 대해 살펴본다. 즉 워드프레스의 가장 기본적인 기능인 대시보드와 플러그인, 세팅과 퍼미션, 사용자와 콘텐츠 관리 등에 대한 기본 지식을 전달하여 고급 단계를 위한 준비를 한다. 만약 독자가 워드프레스 입문자로서 고급 수준의 워드프레스 저작 및 관리 역량을 개발하기 원한다면 2장에서 설명하는 내용을 완전히 숙지해야 한다.

3장, '코드 개요'에서는 워드프레스 배포판 다운로드에 대한 설명으로 시작하며 배포판 파일의 기본 구성과 각 콘텐츠에 대해 설명한다. 인덱스(index) 파일을 시작으로 하향식으로 코드를 검토해 포스트의 선택, 콘텐츠의 조합, HTML 출력코드의 산출 등의 과정을 처리하는 특정 포스트 URL에 대해 알아본다. 3장은 이후에 개발자를 대상으로 설명하게 될 중간 부분에 대한 지도의 역할을 한다고 할 수 있다.

4장 '워드프레스 코어 해부'에서는 워드프레스 엔진의 기초를 구성하는 핵심 PHP 함수에 대해 알아본다. 4장은 이후에 개발자를 대상으로 설명하게 될 중간 부분에 대한 개략적인 설명을 한다. 그리고 후반부에서 다루게 될 워드프레스의 실전 배치와 통합 및 사용자 경험 등에 대한 기초를 쌓는 부분이라고 할 수 있다. 또한 4장에서는 코어 코드를 레퍼런스 가이드로 사용하는 방법도 다루며, 사용자가 임의로 코어 코드를 해킹하는 것이 좋지 않은 이유에 대해서도 설명한다.

5장 '루프'는 이 책에서 설명하는 개발 코어의 핵심 부분이다. 워드프레스 메인 루프는 콘텐츠를 생성하고 MySQL 데이터베이스에 저장하며, 저장된 콘텐츠를 다시 브라우저로 출력하고자 데이터를 추출, 정렬, 배치하는 다양한 함수를 구동한다. 5장은 MySQL 데이터베이스에 저장된 콘텐츠를 출력하는 과정뿐만 아니라 새로운 포스트를 생성, 저장, 발행하는 과정을 샅샅이 살펴본다. 특히 워드프레스의 내부 동작을 철저히 이해할 수 있도록 데이터베이스 기본 함수와 메타 데이터 관리 부분에 대해서도 상세히 알아본다.

6장 '데이터 관리'는 5장에서 설명한 부분 중 나머지 반쪽 부분인 MySQL과 이 데이터베이스에서 사용하는 생성, 업데이트 등 명령어 처리 함수에 대해서 알아본다. 또한 데이터베이스 스키마와 데이터 및 메타데이터 택소노미, 워드프레스 요소간에 존재하는 기본 관계에 대해서도 알아본다. 블로그에서 사용되는 기초 데이터가 저장된 MySQL에서 데이터를 선택하고 추출하는 데 사용한 기본 쿼리 함수에 대해서도 설명한다.

7장 '플러그인 개발'에서는 플러그인의 기본 구조를 설명하고, 훅과 액션, 필터 인터페이스를 이용해 워드프레스 코어에 새로운 기능을 결합하는 방법을 알아본다. 또한 페이지를 구성하고 콘텐츠를 배치하는 함수를 변경하는 방법과 플러그인 데이터를 저장하는 방법을 설명한다. 그리고 기본 프레임워크를 사용해 플러그인을 구축하는 예제를 통해 플러그인의 필수 기능을 알아본다. 또한 7장은 위젯을 생성하는 방법과 블로그 사이드바에 이미지나 콘텐츠를 추가하게 하는 플러그인에 대해 다룬다. 많은 플러그인이 관리의 편리함을 위해 위젯을 제공한다. 플러그인을 워드프레스 리파지토리에 발행하는 것과 플러그인 충돌 시 문제해결에 대해서 다루는 것으로 7장을 마무리한다.

8장 '테마 개발'은 7장의 나머지 반쪽 부분으로 화면 출력과 렌더링을 다룬다. 플러그인이 새로운 기능과 함수를 코어에 추가하는 것이라면 테마와 CSS 페이지 템플릿은 콘텐츠를 독자에게 보여주는 방법을 다룬다. 8장에서는 간단한 샌드박스 테마를 소개하고 테마 작성법과 커스텀 페이지 템플릿 구축, 테마 설치, 7장에서 설명한 함수가 어떻게 테마의 요소를 사용하는지에 대해서도 다룬다. 여기까지가 개발자를 대상으로 한 중반부의 마지막 장이다.

9장 '콘텐츠 수집'에서는 서비스의 관점에서 워프프레스를 살펴본다. 독자의 블로그가 온라인에 공개된 가상의 퍼소나(persona)이거나 온라인 공간(online presence)이라면 다양한 콘텐츠 공급처에서 데이터를 가져와야 할 것이다. 9장은 웹 서비스 인터페이스와 워드프레스 API 및 워드프레스로 유입되거나 유출되는 글에 대해 자세히 알아보고, 워드프레스에서 작성한 포스트를 페이스북 페이지로 보내는 방법도 알아본다.

10장 '사용자 경험 강화'에서는 독자의 관점에서 워드프레스 설치방법을 알아본다. 블로그의 기본이라 할 수 있는 사용성과 테스트 그리고 정보를 쉽게 찾는 방법을 다루고 좀 더 고급 주제인 검색 엔진 최적화(Search Engine Optimization, SEO)와 웹 표준 메타데이터를 사용해 검색 엔진에서 블로그 사이트나 특정 블로그 포스트를 노출하는 방법을 다룬다. 9장에서는 외부 콘텐츠를 워드프레스로 가져오는 방법을 다루었으나 10장에서는 반대로 독자의 콘텐츠를 웹상의 다른 곳으로 보내는 방법을 알아본다. 그리고 콘텐츠 접근성이나 모바일 기기로 전송하는 방법 등의 워드프레스의 약점인 검색 기능을 대신할 수 있는 방법에 대해 논의한다.

11장 '확장성과 통계 및 보안과 스팸'에서는 유명한 사이트가 되는 법과 악명 높은 사이트가 되지 않는 법에 대해서 알아본다. 워드프레스를 댓글 스패머와 악의적인 해커로부터 안전하게 유지하는 것이 환경설정 및 관리의 핵심이라 할 수 있다. 11장에서는 많이 이용되는 보안 및 안티스팸 플러그인과 그 기능에 대해서 살펴본다. 트래픽 분석 도구를 이용하면 콘텐츠 타입과 함수, 광고 캠페인과 프로모션 또는 링크 등이 얼마나 독자의 관심을 유도하는지를 알려주며 어떻게 트래릭을 관리해야 하는지도 알 수 있다.

12장 '콘텐츠 관리 시스템'에서는 워드프레스를 단순한 블로깅 시스템으로만 사용하지 않고 네트워크로 연결된 콘텐츠를 통합하고 배포하는 관리 시스템으로써의 역할을 알아 본다. 또한 드루팔(Drupal)이나 줌라(Joomla) 같은 오픈소스 기반의 콘텐츠 관리 시스템과의 통합 방법에 대해서도 다룬다.

13장 '기업에서 워드프레스 이용'에서는 확장성과 통합 문제를 다룬다.
워드프레스는 종종 '대기업 규모'의 콘텐츠 관리 도구나 12장에서 다룬 방식에 따라 구축하기에는 부족하다는 얘기를 듣곤 한다. 13장에서는 워드프레스를 이용해 작게는 개인 인증부터 크게는 마이크로소프트사의 ASP.NET 서비스에 걸쳐있는 다양한 기업 시설과 통합하는 방법을 설명한다.

14장 '워드프레스로 이전하기'에서는 현재 블로그의 콘텐츠를 어떻게 워드프레스라는 콘텐츠 관리 시스템으로 옮길 것인지에 대한 개요를 설명한 다음, 이미지나 비디오 또는 형식 데이터 같은 미디어 파일을 옮기는데 발생하는 문제점에 대해서 살펴본다. 또한 14장은 현재 사이트를 워드프레스 설치 페이지로 변경(redirect)하는 방식도 다룬다.

15장 '워드프레스 개발자 커뮤니티'에서는 코어를 수정하거나 플러그인과 테마를 업로드하거나 문서를 추가하거나 다른 개발자를 지원하는 방식으로 워드프레스 생태계에 기여하는 방법을 소개한다. 또한 워드프레스의 자매 프로젝트로써 포럼 지원을 목적으로 탄생한 비비프레스(bbPress)의 개요와, 다른 개발 리소스에 대한 요약 그리고 워드프레스에서 사용한 단어를 정리한 용어집 등을 다룬다.


[ 이 책을 이해하는 데 필요한 사전 지식 ]

이 책을 이해하는 데는 HTML에 대한 기초 지식이 필요하고, 테마와 사용자 경험을 다루려면 CSS에 대해서도 알고 있어야 한다. 이 책에서 제공하는 코드를 바탕으로 일부를 변경해 사용한다고 하더라도 고급수준의 개발자용 섹션을 이해하는 데 필요한 PHP 코딩이나 디버깅 경험이 있어야만 코드를 이용해서 템플릿을 만들고 사용할 수 있다. 데이터를 저장 기능을 가진 플러그인이나 데이터 관리 기능에 대해서 이해하려면 데이터베이스에 대한 기본 지식이 필요하며 특히 MySQL의 문법과 구문을 잘 알고 있어야 한다.

저자/역자 소개

[ 저자 서문 ]

워드프레스는 현재 세계적으로 가장 많이 사용되는 설치형 블로깅 소프트웨어다. 또한 GPL 라이선스로 배포되는 오픈소스 프로젝트로서 프로그래밍 언어로는 PHP를, 데이터베이스로는 MySQL을 사용한다. 어떤 서버 환경이든 이 두 가지 요건만 만족하면 운영할 수 있기 때문에 워드프레스는 이식성이 매우 좋으며 설치와 운영은 더욱 쉽다. 워드프레스는 시스템 관리자나 개발자, HTML 전문가나 디자이너의 전유물이 아니며, 인터넷 분야의 표준 기술로만 개발했으므로 확장과 수정이 쉽고 다양한 애플리케이션에 적용할 수 있다. 워드프레스는 미디어 플랫폼으로서 개인용 블로그 소프트웨어로도 널리 사용되고 있으며, 고용량과 고성능이 필요한 CNN 방송사의 블로그 엔진으로도 쓰인다. 또한 블로그를 읽는 사용자에게뿐만 아니라 블로그를 꾸며야 하는 웹 디자이너에게도 매우 적합한 도구다. 워드프레스의 창시자인 매트 뮬렌웨그(Matt Mullenweg)는 2008년 뉴욕시에서 열린 워드캠프의 키노트를 통해 워드프레스 개발팀은 단순하면서 강력한 도구인 PHP와 MySQL을 이용해 워드프레스를 개발했으며 이러한 선택을 통해 워드프레스가 사용자에게는 쉬운 기능을, 개발자에게는 강력한 기능을 제공하는 플랫폼으로 자리매김했다고 역설했다.

워드프레스가 다양한 애플리케이션과 기능을 지원하고 있지만 독자가 원하는 기능에 맞춰 활용하고자 할 때 어디서부터 시작해야 할지 잘 모를 수 있다. 우선 데이터베이스 모델이나 콘텐츠와 메타데이터의 관계를 학습해야 할까? 아니면 HTML 코드를 생성하는 화면 출력 모듈을 학습해야 할까? 이 책은 워드프레스 내부 구조와 코어 코드 동작 및 데이터 모델에 대해서 자세히 설명한다. 동작 방식을 이해하게 되면 훨씬 능숙하게 워드프레스를 다룰 수 있을 뿐만 아니라 기능을 확장할 수도 있으며, 문제가 생겼을 때 고칠 수도 있다. 경주용 자동차를 운전할 때는 자동차 내부의 연소 기관과 항공 역학, 서스펜션 등에 대한 기초 지식을 알아야 하듯이 워드프레스의 기능을 십분 활용하려면 내부 동작 방식에 익숙해지는 것이 매우 중요하다.


[ 저자 소개 ]

할 스턴(Hal Stern)
유명 기술 회사의 부사장이다. 클라우드 컴퓨팅과 보안, 대규모 데이터 관리 및 개발자 커뮤니티 구축에 관심이 있다. 5년 전에 기술 동향을 공유하고 고객과 공감대를 형성하고자 블로그에 글을 쓰기 시작했고, 음악과 음식, 아이스 하키나 골프, 뉴저지에서의 생활 등 좀더 사적인 관심사를 워드프레스를 통해 공유한다. 온라인 웹사이트 주소는 snowmanonfire.com이다.

데이빗 댐스트라(David Damstra)
크레딧 유니언의 서비스 부서인 CU* Answers의 웹서비스 담당 매니저다. 데이빗의 개발팀은 금융업에 맞는 웹사이트와 웹 애플리케이션을 개발하며, 여러 웹사이트 구축 프로젝트에 워드프레스를 적용하고 있다. 데이빗은 PHP5용 젠드 인증 엔지니어이기도 하다. 그의 온라인 웹사이트 주소는 ws.cuanswers.com (업무용) 또는 mirmillo.com (개인용)이다.

브래드 윌리엄스(Brad Williams)
WebDevStudios.com의 대표이자 공동 창업자다. 또한 사이트 포인트(SitePoint) 팟캐스트의 공동 진행자이자, 포럼의 고문이며, 워드프레스 위클리 팟캐스트의 초기 공동 진행자 중 한 명으로 요즘도 가끔씩 참여한다. 브래드는 14년이 넘게 웹사이트를 개발했고, 최근 4년간은 워드프레스와 오픈소스 기술을 개발했다. 온라인 웹사이트 주소는 strangework.com이다.


[ 옮긴이의 말 ]

내가 처음 워드프레스를 알게 된 것은 2009년 초로 거슬러 올라간다. 당시 가장 널리 알려진 오픈 라이선스 중 하나인 크리에이티브 커먼즈 라이선스(CCL)를 RDFa를 이용한 메타데이터로 표기하는 '크리에이티브 커먼즈 권리표현언어(ccREL)'를 한글화하는 작업을 하는 중에 이를 웹에 적용하는 다양한 플러그인을 분석하면서 유독 해외 사례 중에 워드프레스가 자주 언급되는 것을 통해 알게 됐다. 그 이후 워드프레스가 제공하는 엄청난 규모의 다양한 플러그인과 테마 기능에 매료되어 개인 또는 협업 프로젝트를 할 때 자주 활용하면서 친숙하게 되었다.

워드프레스는 단연 현존하는 최고의 콘텐츠 관리 시스템이다. W3테크에서 조사하는 전 세계 오픈 소스 콘텐츠 관리 시스템 점유율 현황을 보면 워드프레스는 점유율 55% 수준을 유지하면서 점유율 10% 수준으로 2위인 줌라(Zoomla)와의 격차를 월등히 벌리면서 수년째 단 한번도 최고의 자리를 내준 적이 없다.

인터넷상의 수많은 개인이나 소규모의 웹 사이트가 워드프레스로 구축될 뿐만 아니라 심지어는 테크 크런치나 CNN 블로그처럼 대용량의 서비스도 워드프레스를 사용하는 이유는 과연 무엇일까? 그것은 워드프레스가 무료로 제공되며, 오픈 소스인데다 무한대의 확장 능력을 제공하기 때문일 것이다. 즉, 매우 합리적이고 구조적으로 설계된 플러그인과 테마 시스템 덕분에 초급 개발자라도 쉽게 워드프레스의 동작을 파악해 원하는 대로 기능을 확장할 수 있다. 게다가 직접 만들지 않아도 무료로 이용할 수 있는 플러그인 저장소의 플러그인이 만여 개가 넘고, 몇 번의 클릭만으로 테마를 적용하면 최고급 디자이너가 작업한 수준의 웹사이트를 만들어 낼 수 있다는 사실은 생각하면 워드프레스의 성공은 어찌 보면 당연한 것이 아닌가 하는 부러움이 들기도 한다.

이 책은 이미 설치된 워드프레스를 이용하려는 사용자와 플러그인과 테마를 개발하려는 개발자 그리고 블로그 운영과 관련된 다양한 주제인 검색 엔진 최적화(SEO), 보안, 기업에서 활용법에 관심 있는 운영자 모두를 대상으로 하는 입문서이다. 이런 방식은 워드프레스라는 콘텐츠 관리 시스템을 둘러싼 광범위한 주제를 폭넓게 다룬다는 점에서 장점이 있지만, 반면 특정 주제를 깊이 있게 다루지 못한다는 아쉬움도 있기 마련이다. 다행인 것은 워드프레스에는 코덱스(codex)라 불리는 너무나도 훌륭한 위키 기반 문서 시스템과 개발자 포럼이 제공된다는 것이다. 단언컨대 이 두 곳을 활용하면 워드프레스 사용 중에 부딪히는 거의 모든 의문점을 해소할 수 있을 것이다. 또한 특정 주제에 대해 좀 더 자세히 알고자 하는 독자라면 플러그인과 테마 개발에 대해서만 전문적으로 다루는 관련 도서를 찾아보는 것도 큰 도움이 될 것이다.


[ 옮긴이 소개 ]

이정표
PC용 소프트웨어부터 웹 개발, 모바일 게임, 모바일 브라우저 개발에 이르기까지 15년 동안 다양한 개발 프로젝트에 참여했다. 텔레카코리아의 수석연구원과 탁텔아시아의 CTO를 거쳤으며, 현재는 케이티하이텔의 모바일 백엔드 서비스인 baas.io 사업을 책임지고 있다. 최근에는 오픈 라이선스를 활용한 공공정보의 개방과 활성화에 관심이 많으며 크리에이티브 커먼즈 코리아(CCK)와 코드나무(codenamu) 활동도 하고 있다. 크리에이티브 커먼즈 권리표현언어(ccREL)와 『참여와 소통의 정부 2.0』의 공역자로도 참여했다.

목차

목차
  • 1장 첫 글 올리기
    • 워드프레스란 무엇인가?
      • 역사: 워드프레스와 친구들
      • 워드프레스의 현황
      • 커뮤니티와의 협업
      • 워드프레스와 GPL
    • 콘텐츠와 대화
      • 콘텐츠 관리 시스템으로서의 워드프레스
      • 대화 만들기
    • 시작하기
      • 호스팅 옵션
      • DIY 설치
        • 워드프레스 소스코드 설치
        • 데이터베이스 설정
    • 마무리
      • 관리메뉴 처음으로 실행
      • 첫 번째 글쓰기
  • 2장 워드프레스의 기능
    • 대시보드
      • 대시보드 위젯
      • 대시보드 커스터마이징
      • 화면 옵션
      • 관리자 메뉴
    • 콘텐츠 생성과 관리
      • 글 생성
      • 글 관리
      • 페이지 만들기
      • 페이지 관리
      • 링크
      • 휴지통
    • 콘텐츠를 카테고리로 분류
      • 카테고리와 태그의 비교
      • 글 카테고리
      • 글에 태그 추가
      • 링크 카테고리
    • 미디어 관련 작업
      • 미디어 라이브러리
      • 미디어 업로드
      • 미디어 삽입
      • 미디어 관리
      • 미디어 편집
    • 댓글과 토론
      • 댓글 관리
      • 댓글 걸러내기
      • 스팸 관리
    • 사용자 관련 작업
      • 새로운 사용자 만들기
      • 사용자 관리
      • 사용자 역할과 권한
      • 사용자 이미지
      • 확장된 사용자 프로필
    • 워드프레스 확장
      • 테마
      • 테마 관리
        • 새로운 테마 추가
        • 테마 업그레이드
        • 테마 편집기
      • 위젯
      • 플러그인
        • 플러그인 관리
        • 새로운 플러그인 추가
        • 플러그인 업그레이드
        • 플러그인 에디터
    • 콘텐츠 툴
      • 콘텐츠 가져오기
      • 콘텐츠 내보내기
      • 터보
      • 워드프레스 업그레이드
    • 워드프레스 설정
      • 일반 설정
      • 쓰기와 읽기
      • 토론
      • 미디어
      • 프라이버시(개인 보안)
      • 고유주소
      • 기타
  • 3장 코드 개요
    • 다운로드 방법
      • 다운로드 위치
      • 파일 형식
      • 릴리스 저장소
    • 코드 검토
    • 키 파일 설정
      • wp-config.php 파일
      • wp-config 고급 옵션
      • .htaccess
        • 고유주소 활성화
        • .htaccess 다시쓰기 규칙(Rewriting Rules)
        • .htaccess를 이용한 설정 조정
      • .maintenance 파일
    • WP-CONTENT 사용자 놀이터
      • 플러그인
      • 테마
      • 업로드와 미디어 디렉터리
      • 업그레이드 디렉터리
      • 사용자 지정 디렉터리
  • 4장 워드프레스 코어 해부
    • 코어의 구성
    • 코어를 레퍼런스로 활용하는 방법
      • 인라인 설명서
      • 함수 찾기
      • 코어 코드 검토
        • Functions.php
        • Formatting.php
        • Pluggable.php
        • Plugin.php
        • Post.php
        • Category.php
    • 워드프레스 코덱스와 참고자료
      • 코덱스란
      • 코덱스 사용 방법
      • 함수 레퍼런스
      • 워드프레스 API
      • 코덱스 논쟁
    • 코어 해킹 금지!
      • 해킹을 금하는 이유
      • 코어 해킹의 대안
  • 5장 루프
    • 루프의 이해
    • 콘텍스트에 루프 넣기
    • 루프의 흐름
    • 템플릿 태그
      • 자주 이용하는 템플릿 태그
      • 태그 매개변수
    • 루프 사용자화
      • WP_Query 객체 사용 방법
      • 사용자 정의 쿼리 생성
        • 포스트 매개변수
        • 페이지 매개변수
        • 카테고리와 태그와 작성자 매개변수
        • 시간과 날짜 및 정렬과 커스텀 매개변수
        • 모두 결합하기
      • 루프에 페이지 번호 추가 하기
      • query_posts()
      • get_posts() 사용
      • 쿼리 리셋
      • 1개 이상 루프 사용
        • 중첩 루프
        • 다중패스 루프
    • 전역 변수
      • 포스트 데이터
      • 작성자 데이터
      • 사용자 데이터
      • 환경 데이터
      • 전역 변수 또는 템플릿 태그?
    • 루프 밖에서의 작업
  • 6장 데이터 관리
    • 데이터베이스 스키마
      • 테이블 구조
    • 테이블 상세 정보
      • 워드프레스 데이터베이스 클래스
      • 단순 데이터베이스 쿼리
      • 복합 데이터베이스 작업
      • 에러 처리
      • 데이터베이스 직접 조작 방법
    • 워드프레스 택소노미
      • 기본 택소노미
      • 택소노미 테이블 구조
      • 택소노미 관계 이해
    • 사용자 정의 택소노미 만들기
      • 사용자 정의 택소노미 개요
      • 사용자 정의 택소노미 구축
      • 사용자 정의 택소노미
  • 7장 플러그인 개발
    • 플러그인 패키징
      • 플러그인 파일 생성
      • 플러그인 헤더 작성
      • 플러그인 라이선스
      • 기능 활성화/비활성화
      • 국제화
      • 디렉터리 상수
    • 훅에 대해 알아보자: 액션훅과 필터훅
      • 액션과 필터
      • 자주 이용되는 필터훅
      • 자주 이용되는 액션훅
    • 플러그인 설정
      • 플러그인 옵션 저장
      • 옵션 배열
      • 메뉴와 서브메뉴 생성
        • 탑 레벨 메뉴 생성
        • 현재 메뉴에 추가
      • 옵션 페이지 생성
    • 워드프레스 통합
      • 메타박스 생성
      • 숏코드
      • 위젯 생성
      • 대시보드위젯 생성
      • 커스텀 테이블 생성
      • 플러그인 삭제
    • 플러그인 보안
      • 논스
      • 데이터 검증
    • 플러그인 예제 생성
    • 플러그인 디렉터리에 발행
      • 제한
      • 플러그인 제출
      • readme.txt 파일 생성
      • SVN 설정
      • 플러그인 디렉터리에 발행
      • 신규 버전 릴리스
  • 8장 테마 개발
    • 테마를 사용하는 이유
    • 테마 설치
      • FTP 설치
      • 테마 인스톨러
      • 테마란
      • 템플릿 파일
      • CSS
      • 이미지와 플래시 파일
      • 플러그인
    • 나만의 테마 만들기
      • 기존 테마를 가지고 시작하기
      • 샌드박스 테마로 시작하기
    • 나만의 테마 제작: 시작하기
      • 필수 파일: Style.css
      • 콘텐츠 출력: index.php
      • 콘텐츠를 다른 방법으로 보여주기 : index.php
    • 커스텀 테마 만들기: DRY
      • Header.php
      • Footer.php
      • Sidebar.php
      • 특이한 것 시도해보기 : 조건별 태그(Conditional Tags)
    • 커스텀 테마 만들기 : 콘텐츠 보여주기
      • 홈페이지를 마음대로 꾸미기: Home.php
      • 오래된 포스트를 날짜별로 보여주기: Archive.php
      • 특정한 카테고리만 보여주기: Category.php
      • 특정한 태그에 대한 포스트 보여주기: Tag.php
      • 하나의 포스트 보여주기: single.php
      • 페이지 보여주기: Page.php
      • 갤러리에서 이미지를 보여주기: Image.php
      • 템플릿 계층 구조
    • 자신만의 테마 만들기: 추가 파일
      • 404 에러 처리: 404.php
      • Attachment.php
      • Author.php
      • Comments.php
      • 템플릿에 기능 더하기: Functions.php
      • Search.php
      • SearchForm.php
      • 그밖의 파일들
    • 커스텀 페이지 템플릿
      • 언제 커스텀 페이지 템플릿을 사용할 것인가
      • 커스텀 페이지 템플릿을 어떻게 사용할 것인가
      • 샌드박스 페이지 템플릿
    • 테마 계층 구조와 자식 테마
    • 프리미엄 테마와 다른 테마 프레임워크
      • Revolution 테마
      • Hybrid 테마
      • Thematic 테마
      • Thesis 테마
      • 샌드박스 테마
      • 부분적인 테마
  • 9장 콘텐츠 수집
    • 라이프스트림이란
    • 자신의 워드프레스를 노출하는 방법
    • 소셜 미디어 버튼
    • 간단한 소셜 네트워킹 뱃지
    • 외부 콘텐츠 모으기
      • 일반적인 XML 피드
      • 트위터 연동
      • 구글 맵
      • RSS나 ATOM 피드와 연동
    • 워드프레스에서 다른 사이트로 콘텐츠를 보내기
      • 다른 사이트에 피드 노출
      • 워드프레스에서 페이스북으로 내용 보내기
    • 광고
      • 워드프레스 사이트로 수익 창출 방법
      • 광고 설정
        • 광고 플러그인
        • 수동으로 광고 넣기
        • 충돌 해결
    • 프라이버시와 역사
  • 10장 사용자 경험 강화
    • 사용자 경험의 원칙
      • 일관된 탐색
      • 시각적 디자인 요소
      • 콘텐츠 쉽게 찾기
      • 사이트 로딩 타임
      • 자바스크립트 사용
    • 사용성 검사
    • 정보 구조화
    • 검색 엔진에 웹사이트 노출시키기
      • 중복 콘텐츠
      • 트랙백과 핑
      • 태그와 콘텐츠 공유 웹사이트
    • 웹 표준과 검색 최적화
      • 시맨틱 HTML
      • 유효한 HTML
      • 마이크로포맷
    • 웹사이트 내에서 검색
      • 기본 검색 기능의 약점
      • 검색 기능에 도움이 되는 플러그인
      • 모바일에서 이용
  • 11장 확장성과 통계 및 보안과 스팸
    • 통계 카운터
      • AWStats
      • Statcounter
      • 민트
      • 구글 애널리틱스
    • 캐시 관리
      • 워드프레스 시스템의 복잡성
      • 웹 서버 캐싱과 최적화
      • 워드프레스 객체 캐싱
      • MySQL 쿼리 캐시
    • 워드프레스 사이트 부하 분산
    • 스팸 다루기
      • 캡차(CAPTCHA)를 이용한 댓글 중재 기능
      • 스팸 탐지 자동화
    • 워드프레스 사이트 보안
      • 최신 버전으로 유지
      • 워드프레스의 버전 정보 숨기기
      • 어드민 계정을 사용하지 않기
      • 테이블명 접두어 변경
      • 설정 파일 이동
      • 콘텐츠 디렉터리 이동
      • 비밀키 기능 이용
      • 로그인 페이지에 SSL로 통신하기
      • 아파치 파일 접근 권한
      • MySQL 비밀번호
      • 권장 보안 플러그인
        • WP Security Scan
        • WorPress Exploit Scanner
        • Wordpress File Monitor
    • 사용자 역할 설정
      • 구독자 역할
      • 기여자 역할
      • 저자 역할
      • 편집자 역할
      • Administrator Role(번역누락)
      • 역할 개관
      • 역할 확장
  • 12장 콘텐츠 관리 시스템
    • 콘텐츠 관리의 정의
    • 워크플로우와 위임
      • 사용자 역할과 위임
      • 워크플로우
    • 콘텐츠 조직화
      • 테마와 위젯 지원
      • 홈페이지
      • 추천 콘텐츠 페이지
      • 콘텐츠 계층 구조
    • 상호작용 기능
      • 포럼
      • 입력폼
      • 전자상거래
    • 기타 콘텐츠 관리 시스템
      • 워드프레스 통합
      • 워드프레스를 쓰면 안 되는 경우
  • 13장 기업에서 워드프레스 이용하기
    • 워드프레스는 기업용으로 적합한가?
    • 워드프레스가 여러분이 생각하는 용도에 적합하지 않을 경우
    • 확장성
      • 성능 튜닝
      • 캐싱
      • 정기 점검
      • 하드웨어 확장
    • 전사 아이디 관리 시스템과의 통합
      • LDAP와 액티브 디렉터리
      • 오픈 아이디(OpenID)
    • 피드를 통한 콘텐츠 통합
  • 14장 워드프레스로 이전하기
    • 마이그레이션 계획
      • 콘텐츠를 가져올 곳
      • 마이그레이션 체크리스트
      • 웹사이트 준비
    • 콘텐츠 확인
      • 텍스트 문서 마이그레이션
      • 워드프레스 내장 가져오기 도구
        • 블로그 변환
        • 워드프레스 확장 RSS 파일 이용
      • 사용자 정의 가져오기 스크립트
    • 미디어 마이그레이션
    • 메타데이터 옮기기
    • 저자와 사용자 옮기기
    • 테마와 표현
    • 독특한 기능
    • 정리하기
      • 수동으로 조정
      • 가져오기의 한계
      • URL 업데이트
      • 주소 전달
    • 웹사이트 오픈
  • 15장 워드프레스 개발자 커뮤니티
    • 워드프레스에 기여하기
      • Trac 이해
        • 버그 리포트
        • Trac 키워드
        • 티켓 보고 찾기
        • Trac 타임라인
        • 소스코드 탐색
      • 코어 수정
        • 서브버전(SVN) 이해하기
        • 워드프레스 코어 후크하기
        • 패치/diff 파일 만들기
      • 플러그인과 테마 제출
      • 문서화
    • 자매 프로젝트
      • 워드프레스 MU
      • BuddyPress
      • bbPress
      • 앞으로의 프로젝트
    • 자원
      • 코덱스
      • 기술지원 포럼
      • 워드프레스 챗
      • 메일링 리스트
      • 외부 참고 자료
      • 워드캠프와 미트업
      • WordPress.TV
      • 테마/플러그인 디렉터리
      • 워드프레스 아이디어
      • 워드프레스 개발 업데이트
      • 워드프레스 포드캐스트
        • 주간 워드프레스
        • 월드캐스트 포드캐스트
        • 워드프레스 포드캐스트
        • 플러그인: 워드프레스 플러그인 포드캐스트
      • 워드프레스 뉴스 웹사이트
        • WPTavern.com
        • WPVibe.com
        • WeblogToolsCollection.com
        • WPEngineer.com
        • WordPress Alltop
        • WordPress Planet

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

[ p108, p109, p231, p233, p248, p257, p266 ]
pOST → POST

[ p212 마지막 행 ]
이 기능은 플러그인이 관리자 대시보드에서는 사용자가 정의한 다른 CSS를 사용한다
PDF 파일로 보기>>

[ p229 두 번째 코드 아래에서 3행 ] (v3.0 이상 수정사항)
add_action('save_post','gmp_save_meta_box'); → add_action('save_post','pp_save_meta_box', 10, 2);

[ p235 아래에서 2행 위로 다음 코드 추가 ]
add_action( 'widgets_init', 'gmp_register_widgets' );

function gmp_register_widgets() {
    register_widget( 'gmp_widget' );
}

[ p253 3-4행 ] (v3.0 이상 수정사항)
// 포스트가 저장될 때 메타박스를 저장하는 액션훅
add_action('save_post','pp_save_meta_box');

// 글이 저장될 때 메타박스의 데이터를 저장하기 위한 훅
add_action('save_post','pp_save_meta_box', 10, 2);

[ p258 두 번째 코드 11행 ]
wi defat → widefat

[ p258 두 번째 코드 11행 ]
titl e → title

[ p263 아래에서 3-4행 ] (v3.0 이상 수정사항)
// 포스트가 저장될 때, 메타박스 데이터를 저장하는 액션훅
add_action('save_post','pp_save_meta_box');

// 글이 저장될 때 메타박스의 데이터를 저장하기 위한 훅
add_action('save_post','pp_save_meta_box', 10, 2);