Open Source, WordPress, and the Community

WordPress currently powers over 25% of the Internet’s top sites. What is it and what makes it so popular and powerful? This talk introduces the audience to the “democratization of publishing” that is WordPress.

한국어로 읽어요~

Hello, my name is Aaron Snowberger. I’m a hobbyist WordPress theme and plugin developer, graphic designer, and English teacher at Jeonju University. I run a WordPress Meetup and workshop in Jeonju and was invited here today to give an overview presentation about WordPress. So, this talk is a modified version of the first one I gave in our Jeonju Meetup in January.

I usually present in English, but was encouraged to try this presentation entirely in Korean, so please give me some grace – it won’t be perfect, and I’ll try not to bore you – at least my PPT is pretty, right?

In this talk, I will address 4 main points that span the topic “Open Source, WordPress, and the Community.” They are:

  1. What is WordPress?
  2. How big is WordPress?
  3. Why should you care?
  4. What can you do with it?

What is it?

WordPress is an open-source Content Management System licensed under the GNU General Public License (GPL) version 2.

Open Source

What is open-source software?

  • “Open” means “visible, free, or available”
  • “Source” is the computer code that creates a program

So, “open-source” is computer code that is freely available to the general public – for anyone to use, change, or share with anyone else. It’s a de-centralized model of software production that provides extensive code documentation to the public for free and encourages community contribution to rapidly build upon and improve the original program.

Contrast this with “closed-source” code and technologies that are often developed in-house to be sold. In some cases, there may be criminal penalties for copying, modifying, disassembling, or even studying the internal source code.

Examples:

  1. Microsoft: closed vs. Linux: open
  2. iOS: closed vs. Android: open
  3. Wix: closed vs. WordPress: open
Advantages of Open vs. Closed-source Software

Open-Source:

  1. More developer support (anyone, anywhere can work use it)
  2. More customizable
  3. More secure (thousands of people can view and fix the code)
  4. Extended Community Support

Closed-source:

  1. Less choices and customer confusion (there’s only ONE version of the software)
  2. More unified experience (Apple always looks like Apple)
  3. More profitable (charge developers to use it, lock out competitors)

Content Management System

What is a CMS?

Years ago, most websites were built page by page, coded by hand, and filled with static content. (I built some of those websites.) These days, websites are filled with a much greater quantity of dynamic content that is often updated on a daily basis.

In order to make the administration of large, fast-changing websites more manageable, Content Management Systems (CMSs) were created in the late 1990s to reduce the need for hand-coding every page and to create a web-publishing interface that more closely resembles a word processing program like Microsoft Word. This enables anyone with an Internet connection and basic word processing skills the ability to quickly create and publish dynamic content to their webpages.

Additionally, website components like the header, the footer, the sidebar, and the various content pieces are broken up into individual files that can be managed separately and loaded dynamically when a website is opened.

It is much nicer to be able to manage each website piece individually (only one code file) than needing to open (up to dozens of) separately coded webpages to modify something as minor as a changed logo in the footer. (I also used to do that.)

GPL Version 2

What is the GPL2?

GPL stands for GNU General Public License (GPL) version 2 and is the legal license that covers WordPress and its source code. The GPL2 is copylefted (a play on the word “copyright”), which means that any software under its license that is used, modified, or distributed must retain the same license terms in order to be legally distributed.

This means that software companies or other developers cannot legally change the license of WordPress code or derivatives of it to closed-source. WordPress and its derivatives are therefore “forever free” under the GPL license for everybody.

In a recent interview, WordPress co-creator Matt Mullenweg described open-source code as:

The most important idea I’ve been exposed to in my life-time … it’s like a Bill of Rights for software … it basically says, “Here are four freedoms that are inalienable rights that you have when you use open-source software.”

The software is completely FREE to:

  1. Use commercially
  2. Modify or build upon
  3. Distribute
  4. Place under warranty

So long as you:

  1. Track dates/changes in the source files
  2. Keep all modifications under the same GPLv2 license
  3. Disclose the source code

(See the simplified GPLv2 summary)

A brief history of WordPress

WordPress was started as a joint software project by Matt Mullenweg and Mike Little in 2003. It was a fork of another open-source blogging platform called b2 (cafelog) that Mullenweg had built a blog on.

In his own words:

[WordPress] started as a fork (or a derivative) of another open-source project.  There was this thing out there called b2 which I was using and blogging with myself and the creator disappeared, so the development stopped. Myself and this guy in England, Mike Little, picked it up and kept working on it.

The two eventually met personally in London in 2005, the same year that Matt formed the company Automattic (notice the “Matt” in there) and WordPress.com went live.

Automattic is the driving force behind WordPress.com and some of WordPress’s most popular plugins like Akismet for blocking spam comments and Jetpack for powering up your WordPress installation.

The Difference Between WordPress.com and WordPress.org

This is a topic I found necessary to clarify in the Jeonju Meetup because many of our first visitors were confused about the difference between the two.

The major difference between WordPress.com and WordPress.org is that the .com is a SERVICE and the .org provides the SOFTWARE.

The major difference between a blogging SERVICE and blogging SOFTWARE is that a SERVICE (like Wix.com or Squaresoft.com) lets you use a standard installation of the software on their own servers (but are limited in your ability to customize the code yourself). But by downloading open-source SOFTWARE on your own, you have the freedom to fully customize any aspect of the code yourself. You are only required to find your own website host.

Think of it as the difference between renting a house and buying one.

  • WordPress.com is the renter you don’t really “own” (http://yourname.wordpress.com) – you can’t change all the wallpaper to exactly how you might like, and you have to call the landlord if something breaks
  • WordPress.org provides the home you “own” at your chosen address (http://www.yourname.net) – it comes with the complete freedom for you to redecorate and redesign as you please

So, in this way, WordPress.com is the best place for people starting out with the software to learn how it functions and how to best use it. Then, once you’re comfortable with it, you can move over to WordPress.org  to download your own version of the software.

In summary:

WordPress.com
  1. Is a hosting SERVICE
  2. Is like a house you rent
  3. Is limited in freedoms, but provides paid upgrades
WordPress.org
  1. Hosts the (downloadable) SOFTWARE and all documentation
  2. Gives you access to a house you can “own”
  3. Is virtually unlimited in customization options

How big is WordPress?

WordPress currently powers over 60,000,000 websites around the world – that’s 23% of all the world’s websites – and Automattic is valued at over $1 billion.

http://w3techs.com/technologies/history_overview/content_management/all/y/
http://w3techs.com/technologies/history_overview/content_management/all/y/

WordPress powers plenty of famous and popular websites like:

  1. The New York Times blogs
  2. CNN blogs
  3. Forbes blogs
  4. Reuters blogs
  5. Jay-Z
  6. Katy Perry
  7. TechCrunch
  8. The GOP (US Republicans)
  9. Mashable

For a more robust list, see WordPress.com’s Notable Users page. And for a FULL list, see WordPress.org’s Showcase.

And in Korea, I’ve found WordPress powers:

  1. Seoul City’s homepage
  2. Bloter.net
  3. Samsung Electronics
  4. LG Electronics
  5. Yonhap News TV
  6. Insight of GS Caltex
  7. KB Rockstar
  8. Hyundai Corporation
  9. WebActually

There are some nice collections of sites at isquery.com and hwangc.com, or you can see a random selection of 4 WordPress sites in the Showcase on ko.wordpress.org.

Why should you care?

#1: It’s Free

Because of its open-source nature and the GPL2 license, you never have to pay any kind of licensing fees to use or modify the software.

#2: It’s Powerful

There are:

Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill

#3: It’s Scalable

WordPress.com is the world’s largest SINGLE INSTALLATION of WordPress. There are over 500 million users with their own unique database tables that are running on a SINGLE code base. Now that’s pretty impressive!

In the same way, WordPress can scale to meet any of your website needs – whether you are a blogger writing a daily diary, or a Fortune 500 company that needs individual store sites for each of its +1,000 stores (Best Buy).

#4: It’s Growing

In 2014, there were 81 WordCamps (large-scale WordPress conferences) held in over a dozen countries. And 2014 was also the first year that non-English downloads of WordPress surpassed English downloads. This shows the company is growing internationally as well as in the US market.

Additionally, the number of monthly unique visitors to WordPress.com is comparable to the number of monthly unique visitors to Facebook – though the company is much smaller.

http://automattic.com/about/
http://automattic.com/about/
#5: It’s Comparatively Easy

I’ve worked with, customized, and programmed:

  1. Static HTML sites
  2. Moodle
  3. Joomla!

And I can say from experience that WordPress has the LEAST complicated administrator backend.

Years ago, Joomla! may have been more powerful than WordPress, but with the 5 major releases of WordPress in 2014 and continual development from a fine community of programmers, it is no longer.

In fact, after transferring one site (TheJeonjuHub.com) from static HTML to Joomla! in 2011, I ended up transferring it over to WordPress within 2 years to better enable the content creators of the site to work. Joomla! menus and the backend just ended up being more complex than they needed to be.

Generally, a full WordPress site can be:

  1. Setup in 5 minutes
  2. Built in 4-5 weeks

If you can Word, then you can WordPress. The Editor interface is virtually the same.

#6: It’s great for Platform Building

If you want to sell anything, you need a platform. WordPress is an amazing platform building tool that makes it easy for anyone to take a simple blog with 30 views per month to over 30,000 views per month (I speak from experience).

KeyToKorean.com site stats
KeyToKorean.com site stats

Main idea:

If you have a story worth telling, then you have a platform worth building.

#7: Korea is a Growing Market

According to a graph of Google Search trends I recently looked up, South Korea has a Search Volume Index of only 15 with regards to searches for WordPress and WordPress related topics. Compare this with neighboring countries and you can see there is a lot of potential for growth in Korea:

  1. South Korea: 15
  2. Japan: 26
  3. Russia: 25
  4. China: 20
  5. Mongolia: 34
  6. Philippines: 57
  7. Malaysia: 40
  8. Indonesia: 76
  9. United States: 46

Additionally, there is great support for WordPress in Korean provided by the WordPress community here.

#8: The WordPress Community

The WordPress community is quite large and very supportive, helpful, and friendly. WordPress Meetups are held all over the world to teach and help others build WordPress websites.

I’ve begun a WordPress Meetup in Jeonju because I wanted to a place to get together regularly with other WordPress users help them build their websites. I actively encouraged the Liberal Arts department at Jeonju University to start using WordPress for “flipped classrooms” and teacher websites and a majority of the 33 foreign teachers took my advice and created their teaching sites on WordPress.com. I’ve run a number of workshops and helped individual teachers improve their sites on numerous occasions, so I decided it was about time to do something more regularly.

I’d initially begun the Meetup with the idea to only target foreign expat users who might want to run a teaching site or blog, but thanks to my invitation here and the encouragement to present in Korean (something I’m still quite shy about), I’ve decided to extend the Jeonju Meetup for an extra hour or two and invite Korean speakers to come in and share about WordPress there as well. (Hopefully I’ll also be able to “level up” my Korean speaking skills there.)

WordPress Support Staff call themselves “Happiness Engineers” and make it their job to “deliver happiness” on the user forums:

  1. WordPress.com Forums (WordPress.com hosted sites)
  2. WordPress.org Forums (self-hosted sites)

In fact, a “recommended read” for their Happiness Engineers is Delivering Happiness by Tony Hsieh, CEO of Zappos.com.

Deliveringhappiness

What can you do with it?

#1: Build Websites

In my own experience, I’ve built:

  1. Classroom sites
  2. Academy sites
  3. School & organizational sites
  4. Educational sites
  5. Church websites + podcasting
  6. Portfolio websites
  7. And personal blog sites (like this one)
#2: Contribute to the Community

There are numerous ways to get involved with the WordPress Community – and you’re already participating in one by attending this WordCamp. The others are suggestions from make.wordpress.org:

  1. Contribute to Core development
  2. Build plugins
  3. Design themes
  4. Create Web apps
  5. Help out in the Support Forums
  6. Help write documentation or training materials – even tutorials on your blogs
  7. Help translate the core, themes, or plugins
  8. Join (or form) a WordPress Meetup

Again:

Whatever your mind can conceive and believe, you can achieve. – Napoleon Hill

So the real question isn’t “What can you do with it?” but rather:

What will you do with it?


Liked my PPT and talk (article)? Leave me a comment below.

Or for our Meetup members, feel free to ask any questions you might have about WordPress or give me suggestions for the next Meetup subject and talk!~

오픈 소스, 워드프레스, 그리고 커뮤니티

워드프레스는 현재 인터넷 상위 사이트의 25 % 이상을 지원합니다. 무엇이며, 무엇 때문에 그렇게 유명하고 강력합니까? 이 강연은 워드프레스인 “출판의 민주화”에 대해 소개합니다.

Read in English

비디오

안녕하세요. 제 이름은 에런 스노버거예요. 저는 워드프레스 테마와 프러그인 취미 개발자, 프리렌스 그래픽 디자이너, 그리고 전주대학교 영어 교수입니다. 저는 전주에서 워드프레스 미트업과 워크숍을 주최하고있으며 여기 서울 미트업으로 오늘 저는 워드프레스에 대한 일반적 개요를 말씀드리려고 이곳에 초대 받았습니다. 그래서, 이 프리젠테이션은 첫번째 전주 미트업 프리젠테이션을 조금 수정한 것입니다.

보통 영어로 발표를 하지만 이 번에는 제 친구로부터 한국말로 발표를 해 보라는 도전을 받아서, 그렇게 할겁니다. 한국말은 제 두번째 언어니까, 조금 인내와 자비를 베풀어 주시기 바랍니다. 그리고, 완벽하지는 않지만 지루하시지는 않을 거예요. 적어도 제 PPT 정말 멋지죠?

제 발표에서는 ‘오픈 소스, 워드프레스, 그리고 커뮤니티’라는 주제를 확장할 네가지 주요 포인트를 알려드리겠습니다:

  1. 워드프레스는 무엇 인가?
  2. 워드프레스는 얼마나 큰가?
  3. 왜 워드프레스에 관심을 가져야 한가?
  4. 워드프레스로 무엇을 하는가?

워드프레스는 무엇 인가?

워드프레스는 오픈 소스 콘텐츠 관리 시스템 입니다. 그것은 GPL2에 의해 인가됩니다.

오픈 소스

오픈 소스가 무엇 입니까?

  • ‘오픈’은 ‘볼 수 있게, 자유롭게, 가능하게 소프트웨어’ 뜻입니다.
  • ‘소스’는 프로그램을 만드는 컴퓨터 코드입니다.

그래서 ‘오픈 소스’는 모두에게 자유로운 공짜 컴퓨터 코드입니다. 누구나 사용할 수 있고, 바꿀 수 있고, 다른 사람과 나눌 수 있습니다. 이것은 분산 소프트웨어 모델과 광범위한 코드문서를 대중에게 공짜로 주고 커뮤니티 한테서 기부를 북돋웁니다. 이렇게 새로운 기능과 버그 수정을 더 빨리 합니다.

‘크로즈 소스’와는 대조적으로 코드와 기술은 회사에서 개발하고 판매합니다. 어떤 경우는 복제하거나, 수정, 재조립, 배부 소스 코드를 연구 하는 것 조차도 ‘범죄’가 될 수 있습니다.

예 보자:

  1. 마이크로소프트: 크로즈 / 리누크스: 오픈
  2. iOS: 크로즈 / 안드로이드: 오픈
  3. 위크스: 크로즈 / 워드프레스: 오픈

오픈 소스와 크로즈 소스의 장점

오픈 소스:

  1. 더 많은 개발자들의 도움 (누구나, 어디서나 할 수있습니다)
  2. 더 많은 사용자 정의 (더 많은 변형가능성)
  3. 더 안전함 (누구나 수정을 할 수있습니다)
  4. 더 큰 커뮤니티의 도움

크로즈 소스:

  1. 선택의 폭이 좁고 사용자의 혼동 1 적음 (소프트웨어 버전은 한개 밖에 없습니다)
  2. 사용자 경험의 통합 (에플에서 나온 것은 다 에플 같죠)
  3. 더 높은 상품가능성 (개발자들에게 사용료를 받고 경쟁자들을 배제 할 수있다)

콘텐츠 관리 시스템 (CMS)

CMS란 무엇입니까?

몇년전에 대부분 웹사이트들은 페이지 별로 만들어졌고 코드를 손으로 만들었고 정적인 콘텐츠들이 많았습니다. (제가 이런 웹사이트들을 만들어 본 적이 있어요.) 요즘은 웹사이트들이 매일 업데이트 되고 동적인 콘텐츠들이 가득합니다.

크고 변화 무쌍한 웹사이트 관리를 더 쉽게하기 위해서, 1990년초에 콘텐츠 관리 시스템들이 만들어졌습니다.페이지별로 손드로 코딩하는 필요를 없애기위해, 그리고 마이크로소프트 워드 처럼 생긴 웹 공개 인터페이스를 만들기 위해 인터넷이 연결되어있고 기본적인 워드프로세스 기술만 있으면 그들이 웹사이트에 다 아나믹한 컨텐드를 빠르게 만들어서 공개 할 수있습니다.

또한 헤더, 푸터, 사이드바, 그리고 다양한 컨텐츠 파트들은 따로 분리가 가능하고 이는 웹사이트가 열렸을 때 개별적으로 관리할수 있고 더 역동적으로 로딩됩니다.

각각의 웹페이지를 따로 관리하는 것이 훨씬 좋습니다. 푸더에 있는 로고를 바꾸는 작은 작업을 수행하기위해 따로 코딩된 웹페이지를 따로 열어야 하는 필요가 없으니까요.

GPL2

GPL2가 무엇입니까?

GPL의 뜻은 ‘그누 제너럴 펍릭 리이센스’라고 하고 워드프레스와 소스 코드를 관장하는 법적 라이센스 입니다. GPL2는 ‘카피레프트’ (카피라이트에서 나온 말)입니다. 사용되고 수정되고 배포되는 모든 소프트웨어는 법적으로 배포 되려면 같은 라이센스 계약을 해야 합니다.

이는 곧, 소프트웨어 회사나 다른 개발자들은 위드프레스의 라이센스를 클로즈 소스로 법적으로 바꿀 수 없습니다. 그러므로 워드프레스와 그 카피는 GPL라이센스 때문에 누구에게나 ‘영원히 무료’입니다.

최근 인터뷰에서, 워드프레스의 공동 제작자 매트 뮤렌웨그은 오픈 소스에 대새서 이렇게 설명 했습니다:

살면서 내가 들은 가장 중요한 생각은 소프트웨어의 권리 장전 과 같고 … 그 것은 ‘곧 당신이 오픈소스를 사용할때 변치 않는 권리를 주는 네가지 자유가 있다.’

소프트웨어는 다음 4가지에 있어 자유롭다:

  1. 상업적으로 사용할 수있고
  2. 수정 또는 구축할 수있고
  3. 배포할 수있고
  4. 보증이 되고

하지만 이 것은 지켜야 합니다:

  1. 소스 파일에 날짜 변경 기록
  2. 모든 수정은 똑같은 라이센스에 적용
  3. 소스 코드를 표면화

(See the simplified GPLv2 summary)

워드프레스의 간략한 역사

워드프레스는 2003년 미국의 메트 뮬렌웨그와 영국의 마이크 리틀이 합작한 소프트웨어 프로젝트로 시작되었습니다. 뮬렌웨그가 만든 b2(카페로그)라 불리는 오픈소스 블로깅 플랫폼의 다른 유형이었습니다. (fork)

뮬렌웨그은 이렇게 설명 했습니다:

워드프레스는 다른 오픈소스 프로젝트에 포크 분할로 시작했습니다. 내가 사용하고 블로깅하는 b2라 불리는 것이 있었는데 만든사람이 사라졌어요. 저와 영국에사는 이 분 마이크 리틀은 이 b2를 가져다가 다시 개발하기 시작했습니다.

결국 둘은 런던에서 2005년에 만났고 같은 해 뮬렌웨그는 Automattic회사 (‘Matt’가 보이시죠?)를 만들고 위드프레스.com도 온라인에 등장 하게 되었습니다.

Automattic은 워드프레스.com과 여러 워드프레스의 가장 유명한 Akismet같은 스팸 댓글을 막는 플럭인과, 워드프레스 설치를 업그레이드 시켜주는 Jetpack 플러그인의 추진력이 되고 있습니다.

워드프레스.com워드프레스.org의 다른 점

이 주제는 제가 전주에서 미트업 할 때 꼭 짚고 넘어가야 겠다고 생각했는데 왜냐하면 사람들이 이 둘의 차이를 헷갈려하고 있었기 때문입니다. 워드프레스.com과 워드프레스.org 주요 차이점은 .com은 서비스이고 .org는 소프트웨어를 다운로드해 주는 커뮤니티입니다.

이 둘의 차이를 전세와 매매라고 생각 해 봅시다:

  • 워드프레스.com은 집전세라고 생각하면 돼요. 워드프레스.com에 리모델링 옵션은 제한 되고 만약 웹사이트가 고장 나면 주인한테 연락 하고 고쳐야 합니다.
  • 반면, 워드프레스.org은 집매매라고 생각하면 되요. 당신은 워드프레스 소프트웨어를 다운로드하면 원하는 데로 재단장하고 재 디자인 할 수 있습니다.

그러므로 워드프레스.com은 초보자들이 웹사이트가 어떻게 운용되고 어떻게 잘 사용하는지 배울 수 있는 가장 좋은 곳입니다. 이렇게 익숙해지고 나면 워드프레스.org로 넘어가서 원하는 버전의 소프트웨어를 다운로드 하면 됩니다.

워드프레스.com은:

  1. 웹호스트 서비스
  2. 전세한 집과 같다
  3. 자유가 제한적이지만 돈을 내면 업그레이드를 할 수 있다

워드프레스.org는:

  1. 소프트웨어 다운로드와 코드 문서 장소
  2. 산집과 같아요
  3. 무제한 수정 (customization) 옵션

워드프레스는 얼마나 큰가?

지금은 워드프레스는 세계적으로 6천만 웹사이트에 설치 되어 있는데 이는 세계의 모든 웹사이트의 23%를 차지합니다. 또 Automattic회사는 10조 달라의 가치가 있습니다.

http://w3techs.com/technologies/history_overview/content_management/all/y/
http://w3techs.com/technologies/history_overview/content_management/all/y/

워드프레스는 다음과 같은 인기있고 유명한 웹사이트를 지원하고 있습니다:

  1. 뉴욕 타임스 블로그들
  2. CNN 블로그
  3. 포브스 블로그
  4. 로이터스 블로그
  5. Jay-Z
  6. 케이티 페리
  7. 텍크런치
  8. GOP (미국의 공화당)
  9. 메쉬어블

더 자세한 목록을 보려면, 워드프레스.com의 주목 할만한 사용자 페이지로 가세요. 전체 목록을 보려면, 워드프레스.org의 쇼케이스로 가세요.

한국에서 워드프레스를 사요하는 사이트 입니다:

  1. 서울시 홈페이지
  2. 블로터.net
  3. 삼성전자
  4. LG전자
  5. 연합뉴스TV
  6. GS 칼텍스
  7. KB 록스타
  8. 현대기업
  9. 웹엑츄얼리

isquery.com하고 hwangc.com에 좋은 워드프레스 웹사이트 모음이 있고 ko.wordpress.org에서 쇼케이스에 란덤 워드프레스 사이트 네개까지 있습니다.

왜 워드프레스는 관심을 가져야 하는가?

첫번째: 무료(공짜)니까

오픈소스의 성격상, GPL2라이센스 때문에 소프트웨어를 수정할 때 라이슨스 비용을 지불할 될요가 없습니다.

두번째: 강력하니까

당신의 생각이 지각하고 믿는 한 당신은 이룰 수 있습니다. –나폴레옹 힐

세번째: 확장이 무한대이니까

워드프레스.com세계의 제일 큰 워드프레스 설치 입니다. 단 하나의 코드를 가지고 각자의 독특한 데이타베이스 테이블을 만들어 쓰고 있는 5조 이상의 사용자들이 있습니다. 대단하지요!~

같은 방식으로 워드프레스는 당신의 웹사이트의 필요한 것을 채우기 위해 확장할 수 있습니다. 당신이 단순히 일기를 쓰는 블로그이거나 (1,000이상) 각각의 스토어 사이트가 필요한 포춘500 기업이든 상관없습니다.

네번째: 성장하고 있으니까

2014년에 12나라에서 81개 워드캠프를 했습니다. 또, 2014년은 워드프레스의 비영어 다운로드수가 영어 다운로드수를 능가한 첫 해였습니다. 이것은 워드프레스가 미국 뿐만 아니라 국제적으로 성장 하고 있다는 것을 보여주고 있습니다.

또, 워드프레스.com은 회사 규모가 훨씬 작지만 월별 방문자 수가 페이스북과 비슷합니다.

http://automattic.com/about/
http://automattic.com/about/

다섯번째: 쉬우니까

저는 HTML, 무들, 그리고 줌라 사이트를 프로그램잉 해 본 적이 있습니다. 제 경험상 워드프레스가 관리자 백앤드가 제일 쉽습니다. 몇년전 만해도 줌라는 워드프레스 보다 더 강했지만 2014년 워드프레스 5개 주요 발표와 아주 훌륭한 프로그래머 커뮤니티의 계속적인 발전으로 지금은 상황이 반전되었습니다.

사실, 제 경험에 2011년에 (theJeonjuHub.com)사이트를 HTML에서 줌라로 바꾼후에 2년안에 워드프레스로 결국 바꿨습니다. 왜냐하면, 줌라의 메뉴와 관리자 백앤드는 더 복잡 했기때문입니다.

보통은 워드프레스 사이트는:

  1. 5분 안에 설치할 수있고
  2. 4-5주 안에 만들 수있습니다

만약 MS워드할 수 있으면, 워드프레스 도 할 수 있습니다. 인터페이스는 비슷합니다.

여섯번째: 플랫폼을 만드는데 최고이니까

무엇인가 팔고 싶다면 플랫폼이 필요합니다. 워드프레스는 단순히 한달에 30명이 보는 블로그에서부터 한 달에 3만명이 보는 블로그까지 플렛폼을 쉽게 만드는 놀라운 도구입니다. (이것은 제 경험에 비취본 것입니다.)

KeyToKorean.com site stats
KeyToKorean.com site stats

일곱변째: 한국은 성장하는 시장이니까

최근에 본 구글서치 드렌드에 나온 그래프에 따르면, 검색이 남한은 워드프레스와 워드프레스 관련 주제에 대한 검색순위15 이었습니다. 주변국들과 비교해 보았을 때 한국의 성장 가능성이 많음을 알수 있습니다.

  1. 한국: 15
  2. 일본: 26
  3. 러시어: 25
  4. 중국: 20
  5. 몽골: 34
  6. 필리린: 57
  7. 말라시아: 40
  8. 인도네시아: 76
  9. 미국: 46

게다가, 현지 워드프레스 커뮤니티에 의한 한국 워드프레스는 엄청난 지원을 받고 있습니다.

여덟번째: 워드프레스 커뮤니티

워드프레스 커퓨니티는 상당히 크고 큰 도움을 주며 유용하고 친절합니다. 워드프레스 미업은 전세계에서 열리며 다른 사람들이 워드프레스 웹사이트를 만드는 것을 가르쳐주고 도와주고 있습니다.

저는 전주에서 워드프레스 미트업을 시잣했는데 이는 다른 워드프레스 사용자들이 웹사이트를 만드는 것을 돕기 위해 정기적으로 서로 만나는 자니를 마련하고 싶었기 때문입니다.

전주대에서 외국인 교수들한테 여러 워드프레스 워크숍을 열었고 개인적으로 1대1 워드프레스 웹사이트 조언과 훈련을 했습니다. 그래서 제 생각에 이베 정기적으로 워드프레스 도움을 위한 자리를 마련해야 갰다고 생각했습니다. 전주 워드프레스 미트업을 2015년 1월부터 시작 했습니다.

그러므로 지금은 ‘해피니스 엔진이어‘라고 생각하고 있습니다. 워드프레스의 ‘해피니스 엔진이어’는 워드프레스 포럼에서 도움과 행복준 종업원이지만 진짜 종업원은 되면 필요 없습니다. 필요한 유일한 것은 다른 워드프레스 사용자에게 도움과 행복을 주려고 싶습니다. 마냑 ‘해피니스 엔진이어’의 생각을 알고 싶으면, 재포스.com의 CEO 토니 셰이의 책 ‘딜리버링 해피니스‘을 읽어 보세요. 이 책은 모든 ‘해피니스 엔진이어’에 추천 도서입니다.

L

워드프레스로 무엇을 할 수 있습니까?

첫째: 웹사이트를 만들 수 있습니다

제 개인적으로는 다음과 같은 것을 만들었습니다:

  1. 교실에서 사용하는 사이트
  2. 학업용 사이트
  3. 학교와 기업 사이트
  4. 교육용 사이트
  5. 교회 웹사이트와 팟케스팅
  6. 포트폴리오 웹사이트
  7. 개인적 블로그 사이트 (이것과 같은)

두번째: 커뮤니티에 기여할 수 있습니다

워드프레스 커뮤니티에 참여하는 방법은 많습니다. 여기 워드프레스 미트업을 와서 벌써 참여하고 있습니다. 다른 참여 방법은 make.wordpress.org에 있습니다:

  1. 코어 (메인 소스코드) 개발하기
  2. 플러그인 만들기
  3. 테마 디자인하기
  4. 웹앱 만들기
  5. 도움 포럼에서 돕기
  6. 문서나 훈련서, 투토리얼를 쓰기
  7. 코어와 테마와 플러그인을 번역하기
  8. 워드프레스 미트업을 가입하거나 만드기

다시:

당신의 생각이 지각하고 믿는 한 당신은 이룰 수 있습니다. –나폴레옹 힐

그래서 가장 중요한 질문은 ‘무엇을 할 수 있습니까?’가 아니라:

‘무엇을 하겠습니까?’입니다.

How to Enable Social Icons in the WordPress Theme Customizer

I figure I might as well write about this before I deprecate it in my upcoming Theme. Social Nav Menus are much better.

A week or two ago as I was getting deep into developing a new WordPress Theme, I stumbled upon some pretty good looking code that would allow me to add Social Media Icons to the Theme Customizer like so:

theme_customizer_social_icons

At the time, it was a superb idea. I was just learning about all the possibilities the Theme Customizer affords developers and it was fun to implement the code and watch it work so smoothly.

However, after watching Morten Rand-Hendriksen’s Building Themes from Scratch Using Underscores and reading Justin Tadlock’s post on building Social Nav menus, I think I will scratch this bit of code in favor of Tadlock’s solution.

It just makes sense to not want to have to re-enter your Social Media links in every new Theme you install. Why not just leave all the Social links you want in a nav menu and use your Theme to style and output it specifically as a Social menu?

TwentyFifteen also does just that. (See #3 in this post.)

Nevertheless, I felt that the code itself was worth my time to invest in learning, so I’m reproducing it here for reference. This code is modified slightly from the example I found – I’ve included email as an option. It should be pretty easy to see how it’s done:

add_section(), add_setting(), add_control()

 /**
 * Social site icons for Quick Menu bar
 * 
 * @link: https://www.competethemes.com/social-icons-wordpress-menu-theme-customizer/
 */
 $wp_customize->add_section( 'social_settings', array(
     'title' => __( 'Social Media Icons', 'theme_slug' ),
     'priority' => 100,
 ));
 
 $social_sites = theme_slug_get_social_sites();
 $priority = 5;
 
 foreach( $social_sites as $social_site ) {
 
     $wp_customize->add_setting( "$social_site", array(
         'type' => 'theme_mod',
         'capability' => 'edit_theme_options',
         'sanitize_callback' => 'esc_url_raw',
     ));
 
     $wp_customize->add_control( $social_site, array(
         'label' => ucwords( __( "$social_site URL:", 'social_icon' ) ),
         'section' => 'social_settings',
         'type' => 'text',
         'priority' => $priority,
     ));
 
     $priority += 5;
 }

function theme_slug_get_social_sites()

/**
 * Social Media icon helper functions
 * 
 * @return array
 * 
 * @link: https://www.competethemes.com/social-icons-wordpress-menu-theme-customizer/
 */
function theme_slug_get_social_sites() {
 
     // Store social site names in array
     $social_sites = array(
         'twitter', 
         'facebook', 
         'google-plus',
         'flickr',
         'pinterest', 
         'youtube',
         'vimeo',
         'tumblr',
         'dribbble',
         'rss',
         'linkedin',
         'instagram',
         'email'
     );
 return $social_sites;
}

function theme_slug_show_social_icons()

// Get user input from the Customizer and output the linked social media icons
function theme_slug_show_social_icons() {
 
     $social_sites = theme_slug_get_social_sites();
 
     // Any inputs that aren't empty are stored in $active_sites array
     foreach( $social_sites as $social_site ) {
         if ( strlen( get_theme_mod( $social_site ) ) > 0 ) {
             $active_sites[] = $social_site;
         }
     }
 
     // For each active social site, add it as a list item
     if ( !empty( $active_sites ) ) {
         echo "<ul class='social-media-icons'>";
 
         foreach ( $active_sites as $active_site ) { ?>

             <li>
             <a href="<?php echo get_theme_mod( $active_site ); ?>">
             <?php if( $active_site == 'vimeo' ) { ?>
                 <i class="fa fa-<?php echo $active_site; ?>-square"></i> <?php
             } else if( $active_site == 'email' ) { ?>
                 <i class="fa fa-envelope"></i> <?php
             } else { ?>
                 <i class="fa fa-<?php echo $active_site; ?>"></i> <?php
             } ?>
             </a>
             </li> <?php
         }
         echo "</ul>";
     }
}

Oh, and obviously you’ll need to remember to enqueue FontAwesome in your WordPress Theme in order to make this all function properly. Then, the CSS styling is totally up to you.

Default WordPress Theme Customizer Controls

I’ve recently been messing around with the WP Theme Customizer a bunch and have been looking for the names of all the default settings, sections, and controls. I found them in a file in the wp-includes folder:

/wp-includes/class-wp-customize-manager.php

The various default section names, setting names, and 'priority' are listed below.This is mostly useful if you’re trying to simply rearrange the position ('priority' => 20) of some options, or want to rename some of them like so:

$wp_customize->get_section( 'nav' )->title = __( 'Menus', 'theme_slug' );
$wp_customize->get_control( 'blogname' )->priority = 10;
$wp_customize->get_setting( 'background_color' )->default = '#169A70';
  1. Site Title & Tagline ('title_tagline'), 20
    1. 'blogname'
    2. 'blogdescription'
    3. 'display_header_text'
  2. Colors ('colors'), 40
    1. 'header_textcolor'
    2. 'background_color'
  3. Header Image ('header_image'), 60
    1. 'header_image'
    2. 'header_image_data'
  4. Background Image ('background_image'), 80
    1. 'background_image_thumb'
    2. 'background_repeat'
    3. 'background_position_x'
    4. 'background_attachment'
  5. Navigation ('nav'), 100
    1. "nav_menu_locations[{$location}]"
  6. Widgets ('widgets'), 110
  7. Static Front Page ('static_front_page'), 120
    1. 'show_on_front'
    2. 'page_on_front'
    3. 'page_for_posts'

The code specifically for 'widgets' is located in:

/wp-includes/class-wp-customize-widgets.php

The full code for the default Theme Customizer settings is here:

 /**
 * Register some default controls.
 *
 * @since 3.4.0
 */
 public function register_controls() {

 /* Control Types (custom control classes) */
 $this->register_control_type( 'WP_Customize_Color_Control' );
 $this->register_control_type( 'WP_Customize_Upload_Control' );
 $this->register_control_type( 'WP_Customize_Image_Control' );
 $this->register_control_type( 'WP_Customize_Background_Image_Control' );

 /* Site Title & Tagline */

 $this->add_section( 'title_tagline', array(
 'title' => __( 'Site Title & Tagline' ),
 'priority' => 20,
 ) );

 $this->add_setting( 'blogname', array(
 'default' => get_option( 'blogname' ),
 'type' => 'option',
 'capability' => 'manage_options',
 ) );

 $this->add_control( 'blogname', array(
 'label' => __( 'Site Title' ),
 'section' => 'title_tagline',
 ) );

 $this->add_setting( 'blogdescription', array(
 'default' => get_option( 'blogdescription' ),
 'type' => 'option',
 'capability' => 'manage_options',
 ) );

 $this->add_control( 'blogdescription', array(
 'label' => __( 'Tagline' ),
 'section' => 'title_tagline',
 ) );

 /* Colors */

 $this->add_section( 'colors', array(
 'title' => __( 'Colors' ),
 'priority' => 40,
 ) );

 $this->add_setting( 'header_textcolor', array(
 'theme_supports' => array( 'custom-header', 'header-text' ),
 'default' => get_theme_support( 'custom-header', 'default-text-color' ),

 'sanitize_callback' => array( $this, '_sanitize_header_textcolor' ),
 'sanitize_js_callback' => 'maybe_hash_hex_color',
 ) );

 // Input type: checkbox
 // With custom value
 $this->add_control( 'display_header_text', array(
 'settings' => 'header_textcolor',
 'label' => __( 'Display Header Text' ),
 'section' => 'title_tagline',
 'type' => 'checkbox',
 ) );

 $this->add_control( new WP_Customize_Color_Control( $this, 'header_textcolor', array(
 'label' => __( 'Header Text Color' ),
 'section' => 'colors',
 ) ) );

 // Input type: Color
 // With sanitize_callback
 $this->add_setting( 'background_color', array(
 'default' => get_theme_support( 'custom-background', 'default-color' ),
 'theme_supports' => 'custom-background',

 'sanitize_callback' => 'sanitize_hex_color_no_hash',
 'sanitize_js_callback' => 'maybe_hash_hex_color',
 ) );

 $this->add_control( new WP_Customize_Color_Control( $this, 'background_color', array(
 'label' => __( 'Background Color' ),
 'section' => 'colors',
 ) ) );


 /* Custom Header */

 $this->add_section( 'header_image', array(
 'title' => __( 'Header Image' ),
 'theme_supports' => 'custom-header',
 'priority' => 60,
 ) );

 $this->add_setting( new WP_Customize_Filter_Setting( $this, 'header_image', array(
 'default' => get_theme_support( 'custom-header', 'default-image' ),
 'theme_supports' => 'custom-header',
 ) ) );

 $this->add_setting( new WP_Customize_Header_Image_Setting( $this, 'header_image_data', array(
 // 'default' => get_theme_support( 'custom-header', 'default-image' ),
 'theme_supports' => 'custom-header',
 ) ) );

 $this->add_control( new WP_Customize_Header_Image_Control( $this ) );

 /* Custom Background */

 $this->add_section( 'background_image', array(
 'title' => __( 'Background Image' ),
 'theme_supports' => 'custom-background',
 'priority' => 80,
 ) );

 $this->add_setting( 'background_image', array(
 'default' => get_theme_support( 'custom-background', 'default-image' ),
 'theme_supports' => 'custom-background',
 ) );

 $this->add_setting( new WP_Customize_Background_Image_Setting( $this, 'background_image_thumb', array(
 'theme_supports' => 'custom-background',
 ) ) );

 $this->add_control( new WP_Customize_Background_Image_Control( $this ) );

 $this->add_setting( 'background_repeat', array(
 'default' => get_theme_support( 'custom-background', 'default-repeat' ),
 'theme_supports' => 'custom-background',
 ) );

 $this->add_control( 'background_repeat', array(
 'label' => __( 'Background Repeat' ),
 'section' => 'background_image',
 'type' => 'radio',
 'choices' => array(
 'no-repeat' => __('No Repeat'),
 'repeat' => __('Tile'),
 'repeat-x' => __('Tile Horizontally'),
 'repeat-y' => __('Tile Vertically'),
 ),
 ) );

 $this->add_setting( 'background_position_x', array(
 'default' => get_theme_support( 'custom-background', 'default-position-x' ),
 'theme_supports' => 'custom-background',
 ) );

 $this->add_control( 'background_position_x', array(
 'label' => __( 'Background Position' ),
 'section' => 'background_image',
 'type' => 'radio',
 'choices' => array(
 'left' => __('Left'),
 'center' => __('Center'),
 'right' => __('Right'),
 ),
 ) );

 $this->add_setting( 'background_attachment', array(
 'default' => get_theme_support( 'custom-background', 'default-attachment' ),
 'theme_supports' => 'custom-background',
 ) );

 $this->add_control( 'background_attachment', array(
 'label' => __( 'Background Attachment' ),
 'section' => 'background_image',
 'type' => 'radio',
 'choices' => array(
 'scroll' => __('Scroll'),
 'fixed' => __('Fixed'),
 ),
 ) );

 // If the theme is using the default background callback, we can update
 // the background CSS using postMessage.
 if ( get_theme_support( 'custom-background', 'wp-head-callback' ) === '_custom_background_cb' ) {
 foreach ( array( 'color', 'image', 'position_x', 'repeat', 'attachment' ) as $prop ) {
 $this->get_setting( 'background_' . $prop )->transport = 'postMessage';
 }
 }

 /* Nav Menus */

 $locations = get_registered_nav_menus();
 $menus = wp_get_nav_menus();
 $num_locations = count( array_keys( $locations ) );

 $this->add_section( 'nav', array(
 'title' => __( 'Navigation' ),
 'theme_supports' => 'menus',
 'priority' => 100,
 'description' => sprintf( _n('Your theme supports %s menu. Select which menu you would like to use.', 'Your theme supports %s menus. Select which menu appears in each location.', $num_locations ), number_format_i18n( $num_locations ) ) . "nn" . __('You can edit your menu content on the Menus screen in the Appearance section.'),
 ) );

 if ( $menus ) {
 $choices = array( 0 => __( '&mdash; Select &mdash;' ) );
 foreach ( $menus as $menu ) {
 $choices[ $menu->term_id ] = wp_html_excerpt( $menu->name, 40, '&hellip;' );
 }

 foreach ( $locations as $location => $description ) {
 $menu_setting_id = "nav_menu_locations[{$location}]";

 $this->add_setting( $menu_setting_id, array(
 'sanitize_callback' => 'absint',
 'theme_supports' => 'menus',
 ) );

 $this->add_control( $menu_setting_id, array(
 'label' => $description,
 'section' => 'nav',
 'type' => 'select',
 'choices' => $choices,
 ) );
 }
 }

 /* Static Front Page */
 // #WP19627

 $this->add_section( 'static_front_page', array(
 'title' => __( 'Static Front Page' ),
 // 'theme_supports' => 'static-front-page',
 'priority' => 120,
 'description' => __( 'Your theme supports a static front page.' ),
 ) );

 $this->add_setting( 'show_on_front', array(
 'default' => get_option( 'show_on_front' ),
 'capability' => 'manage_options',
 'type' => 'option',
 // 'theme_supports' => 'static-front-page',
 ) );

 $this->add_control( 'show_on_front', array(
 'label' => __( 'Front page displays' ),
 'section' => 'static_front_page',
 'type' => 'radio',
 'choices' => array(
 'posts' => __( 'Your latest posts' ),
 'page' => __( 'A static page' ),
 ),
 ) );

 $this->add_setting( 'page_on_front', array(
 'type' => 'option',
 'capability' => 'manage_options',
 // 'theme_supports' => 'static-front-page',
 ) );

 $this->add_control( 'page_on_front', array(
 'label' => __( 'Front page' ),
 'section' => 'static_front_page',
 'type' => 'dropdown-pages',
 ) );

 $this->add_setting( 'page_for_posts', array(
 'type' => 'option',
 'capability' => 'manage_options',
 // 'theme_supports' => 'static-front-page',
 ) );

 $this->add_control( 'page_for_posts', array(
 'label' => __( 'Posts page' ),
 'section' => 'static_front_page',
 'type' => 'dropdown-pages',
 ) );
 }