2015년 1월 2일 금요일

워드프레스에서 자식 테마 만들기 - 테마 수정하여 활용하는 방법

워드프레스의 강점은 초보자도 조금(?) 노력하면 웹페이지나 블로그를 만들어 서비스할 수 있습니다.

그런데 막상 시작해보니...홈페이지 개발과는 관계가 없는 비즈니스를 하는 본인에게는 참 쉽지 않은 일이었습니다. 막상 다른 할일도 많아 머리도 바쁘고 성질이 급해 차분히 그 기능을 익히기 쉽지 않았습니다.

어쨋거나 무료 테마를 하나 정하여 그 테마를 활용하여 나의 콘텐츠를 올려 서비스 하려고 할 때 그 무료 테마를 나의 입맛에 맞게 수정하고 싶을 때가 반드시 생기게 됩니다.
이럴때는 그 테마의 자식 테마를 만들어 서비스하는 방법이 좋습니다.
그렇지 않고 그 테마의 원본 파일(css/php 파일)을 직접수정하여 사용하게 되면, 후에 그 테마를 업그레이드 하여 업데이트 버전이 발표되었을 때, 그 테마의 업데이트된 버전을 설치하면 기존의 파일들 위에 새로 업데이트된 파일들을 over-write 해버리기 때문에 수정했던 파일의 내용들이 모두 사라져 버리는 불상사가 발생합니다. 그간 작업했던 내용들이 모두 없어져 버리는 황당한 사건이 벌어집니다.

그렇다고 업데이트된 테마를 사용하지 않고 옛날 버전의 테마를 그대로 사용하게 되면 외부에서 해킹이나 보안의 문제등이 발생할 수 있으므로 권장하지 않습니다.

그러므로 반드시 자식 테마를 만들어 그 자식 테마의 폴더에 수정하는 내용들을 저장하여 사용할 일입니다.
자식 테마를 사용하면 원본 테마가 업데이트되어 설치되더라도 자식 테마의 내용들은 그대로 반영됩니다. 새롭게 된 테마를 그대로 사용하면서 내가 수정하여 커스트마이징한 내용도 그대로 반영하게 되는 것이니...당연히 그런 방법으로 사용해야 하겠습니다.

자식 테마를 만드는 방법은 의외로 간단합니다. 만든후에 적용되는 개념만 몇가지 이해하면 됩니다.
자식 테마를 만들때 폴더를 새로이 만들어 그 폴더안에 넣어둘 파일은 최소한 style.css 파일 하나만 있어도 됩니다. 필요할 때 추가하면 됩니다.

이 style.css 파일안에 구성할 내용은 아래와 같습니다.

/*
Theme Name: AAA-child
Version: 1.0
Description: A child theme of AAA
Template: AAA
*/

@import url("../AAA/style.css");

새로이 만드는 폴더 이름은 편리하게 아무 이름을 붙여도 좋습니다.
편의상 테마 이름 뒤에 -child 를 많이 붙입니다.
예를 들면 'AAA' 라는 이름을 가진 테마를 사용한다고 할 때 자식 테마를 넣어둘 폴더 이름은 'AAA-child' 라는 이름을 정하는 것입니다.
이러한 과정도 잘 모르겠고 그냥 간단히 자동으로 만들고 싶으면 자식 테마를 만드는 플러그인을 설치하여 사용하면 됩니다. 
본인의 경우에는 'Child Themify' 라는 플러그인을 설치하여 작업합니다.
설치한 후 의 플러그인은 아래를 참조하십시요.

즉 원본 테마를 활성화한후 그 테마를 클릭하면 화면 하단에 Child 테마를 만들 수 있는 버튼이 추가되어 보입니다. 아래를 참조하십시요.
화면 하단에 Create a Child theme 라는 버튼이 나타난 것을 확인 할 수 있습니다.
이 버튼을 누르게 되면 자식 테마 이름을 지정하는 화면이 나타나고 이 항목에 위에서 설명한 대로 테마이름-child를 덧붙여 지정해주면 관련된 내용을 알아서 모두 만들어 그 폴더에 style.css 파일까지 생성하여 줍니다. 간단하게 자식 테마를 만들수 있습니다.

테마 대시보드에 자식 테마가 추가된 것을 확인 하실 수 있습니다.

맥 미니 웹서버 활용 - 워드프레스에 나눔폰트 사용하기

워드프레스에 나눔(Nanum) 폰트를 사용하는 방법은 두가지가 있습니다.
맥 미니에 워드프레스를 설치하여 사용한다는 전제를 가지고 설명하겠습니다.

첫번째는 맥 미니의 시스템에 나눔 폰트를 맥 시스템의 폰트 설치를 이용하여 웹폰트 부분에 나눔폰트를 설치하여 이 웹폰트로 설치된 나눔폰트를 워드프레스에서 지정하여 보여주는 방법이 있습니다. 초보자에게는 설치부터 조금 복잡합니다.
서버에 부하가 걸리면 당연히 폰트로 인한 웹페이지 보여주는 속도가 문제가 될 수 있습니다.

두번째는 구글에서 제공하는 웹폰트중의 나눔폰트를 불러다 워드프레스에서 서비스하는 방법입니다. 첫번째 보다 훨씬 간단하고 부하가 크게 걸리지 않습니다.
그리고 두번째의 방법은 또 워드프레스에 나눔폰트 서비스 플러그인을 설치하면 어떤 테마를 사용하여도 나눔폰트를 활성화시킨 테마에서 작동시킬 수 있습니다.
플러그인 설치 한번으로 끝나는 것입니다.

제가 사용하는 나눔폰트 플러그인은 '한글폰트 나눔고딕 - 구글' 입니다.
위의 화면은 플러그인을 설치한 화면입니다.
설치하고 활성화(Activate) 시키는 것으로 끝입니다. 간단합니다.
이후에는 어떤 테마를 설치하여 활성화시키던지 위의 플러그인을 활성화시킨다면 적용이 됩니다.



위의 화면은 설치한 '한글폰트 나눔고딕 - 구글' 플러그인의 내용을 확인한 화면입니다.
캡처한 화면에는 보이지 않지만 아래로 스크롤 해 보면 아래와 같이 나눔폰트가 지정된 부분을 확인할 수 있습니다.




2015년 1월 1일 목요일

워드 프레스에서 Page(페이지)와 글(Post)의 차이 (Page vs Post)

워드프레스로 홈페이지를 만들고 있습니다.
서버는 맥 미니를 사용하고 있는데, 이에 대한 방법은 홈페이지를 만들면서 두서없이 작업하는 순서와 상관없이 방법을 향후에 기억하기 위하여 내용을 정리하려고 합니다.

그런 의미에서 위의 제목에 대한 내용도 워드프레스를 사용하여 테마를 선택하고 만들다 보니 헷갈려서... 검색을 한 결과를 아래에 복사해서 가져왔습니다.
원문의 출처를 밝혀야 하겠지만...어느 곳에서 복사했는지 기억이 나지 않아 생략하렵니다.
그리고 내용은 우리말로 요약하려고 합니다.

영어 전문서적 원서를 두권이나 번역하여 출판하며 내 자신도 이런 경우가 있겠다 싶은 경우가 많지만, 내 자신도 다른 사람이 번역한 내용을 이해하기 어려워 헷갈리는 경우가 흔합니다.
대표적인 것 중의 하나가 '글'과 '페이지' 입니다. 영어로 post 와 page 입니다.
이 두 콘텐츠가 위젯과 함께 사용될 때 헷갈림이 최고에 도달합니다.
그래서 검색을 해 보았고...안타깝지만 영어로 된 내용을 찾았습니다.
더 검색하면 국내에서 포스팅한 내용도 있을 것 같았지만...나중에 찾아서 이 포스트에서 빠진 내용은 추가하려고 합니다.

--------------------------------------------
워드프레스 초보자들이 겪는 헷갈리는 것중의 하나가 '글'과 '페이지'입니다. 영어로 post와 page 입니다. 디폴트로 워드프레스는 두 종류의 콘텐츠가 있는데 post와 page - 한글판 워드프레스를 설치하면 글과 페이지로 번역되어 있습니다 - 입니다. 초보자라면 아마도 이 둘의 차이가 무엇인지 궁금해집니다. 대시보드에서 유사한 필드를 가지고 있습니다. 웹사이트에서도 동일한 모습으로 보입니다. 
왜 두가지가 필요한지, 언제 포스트를 사용해야 하는지 살펴보겠습니다.
이 이슈를 가지고 워드 프레스에서 posts vs pages 사이의 차이점을 설명하겠습니다.

Posts / 글

워드프레스를 블로그로 사용하고 있다면, 사이트의 콘텐츠의 대부분은 포스트를 사용하여 끝맺음을 하게 됩니다. 포스트는 블로그 홈페이지에서 연대기를 역방향으로 나열한 콘텐츠 기록물입니다. 역방향으로 나열된 순서로 인하여 포스트는 시간의 의미를 가지고 있습니다. 보다 오래된 포스트는 년과 월에 기초하여 기록물로 저장됩니다. 포스트가 오래될수록, 사용자는 그것을 찾기 위하여 더 깊이 과거의 내용물을 찾아 들어가야 합니다. 포스트카테고리태그에 기초하여 조직화 할 수 있는 옵션을 가지고 있습니다.
워드프레스의 포스트는 일자와 시간으로 퍼블리시 되기 때문에 RSS 피드를 통하여 제공될 수 있습니다.
이러한 기능으로 웹사이트에 등록한 독자들은 RSS 피드를 통하여 대부분의 최근의 포스트를 받아 볼 수 있습니다. 블로거들은 RSS 피드를 사용하여 등록한 독자들에게 Aweber 이나 MailChimp 처럼 이메일로 전달해 줄수 있기 때문입니다. 서명한 독자들에게 매일 / 주간 뉴스레터를 만들어 보내줄 수 있습니다. 포스트의 즉시성은 매우 소셜한 특징이 있는 셈입니다. Twitter,FacebookGoogle+LinkedIn 같은 소셜 매디어 네트웍을 이용하여 포스한 내용을 독자들과 공유할 수 있는 것입니다.
포스트는 대화가 가능한 통로를 제공합니다. 특정의 주제에 사용자가 코멘트를 달 수 있는 기능도 가지고 있습니다. 이러한 기능을 차단하기를 원한다면 설정>토론 끄기를 통하여 설정하면 됩니다.

페이지 / Pages

페이지는 'about' 과 같은 페이지, 프라이버시 정책, 법률 포기 각서와 같은 '일회성' 성질의 정적인 콘텐츠를 의미한다. 워드프레스 데이터베이스는 페이지의 실린 날자를 저장하지만, 시간개념이 없는 콘텐츠 입니다. 예를 들어, about 페이지는 기한이 없다고 생각합니다. 되돌아가서 업데이트할 수 있습니다만, 2012년 about 페이지 와 2013년 about 페이지등으로 저장할 수 없습니다. 시간과 날짜가 페이지에 연결되어 있지 않기 때문에 기본적으로 RSS 피드에 속하지 않습니다.
페이지는 대부분의 경우에 소셜의 의미가 없습니다. 그래서 소셜 공유 버튼이나 코멘트를 포함하지 않습니다.    
사용자가 contact 페이지나 법적 권한 페이지에 코멘트/덧글을 다는 것을 원치 않을 때 사요합니다. 대부분의 경우에 다른 사람이 귀하의 프라이버시 정책등을 트윗하지 않기를 원하는 경우에 해당합니다.
포스트와 다르게 페이지는 계층성이 있습니다. 예를 들어, 페이지 안에 서브 페이지를 가질 수 있습니다. 이러한 주요 사례는 Blueprint page 입니다. 이러한 특성은 페이지를 서로 묶어 조직화하고 또 맞춤형 템플리트를 적용할 수 있도록 해줍니다.

워드프레스는 테마를 사용하여 디폴트로 맞춤형 페이지 템플리트를 만들수 있는 기능을 가지고 있습니다. 개발자가 필요할 때 각 페이지의 모양을 맞춤형으로 만들 수 있는 기능입니다. 대부분의 테마는 포스트와 페이지가 동일하게 보입니다. 그렇지만 페이지를 사용하여 겔러리 페이지나 시작페이지를 생성할 때, 이러한 맞춤페이지 템플리트 기능은 아주 편리합니다.
페이지는 또 숫자 값을 할당하여 페이지의 순서를 조정할 수 있도록 해주는 Order 라 부르는 원시적인 기능을 가지고 있습니다. 그러나 이러한 기능은 Simple Page Ordering 같이 플러그인으로 확장되어 페이지의 순서를 드레그 드롭으로 조정이 가능합니다.

주) 메뉴를 작성하기 위하여는 페이지를 생성하여 이 페이지에 메뉴 속성을 지정하면 됩니다.

글/포스트/Posts vs. 페이지/Pages (Key Differences)

The differences we list below definitely have exceptions. You can use plugins or code snippets to extend the functionality of both content types. Below is the list of key differences by default.

  • Posts are timely vs. Pages are timeless.
  • Posts are social vs. Pages are NOT.
  • Posts can be categorized vs. Pages are hierarchical.
  • Posts are included in RSS feed vs. Pages are not.
  • Pages have custom template feature vs. Posts do not.

Frequently Asked Questions

How Many Posts and/or Pages can I have?
You can have as many posts and/or pages that you want. There is no limit on the number of posts or pages that can be created.
Are there any SEO advantages to one or the other?
Search engines like content to be organized. Timeless content is considered to be more important however there is a lot of priority given to latest timely content. In short, there may be a difference, but as a beginner you do not need to worry about it. Focus on making your site organized for the user.