워드프레스는 전세계적으로 가장 많이 사용되는 CMS인 만큼 다양한 플러그인과 테마들이 많다. 하지만 기본적인 기능만 사용하는 경우에는 기존에 만들어진 플러그인만으로 충분하지만, 한단계 더 나에게 맞는 기능을 구현하고 싶다면 나에게 100% 맞는 플러그인 찾기가 어렵다.
누군가 만들어 놓은 플러그인이 내 요구사항에 100% 맞다면 그것도 이상한 일이다. 만약 100% 만족한다면 운이 굉장히 좋은 경우이거나, 내 사이트를 좀 더 개선할 포인트를 충분히 고민해보지 않았나 돌아보자.
내 경우에도 기획 중인 서비스를 구현하기 위해 몇 가지 유료 테마, 플러그인을 구매했지만, 내 요구사항을 만족하지 못해 기능을 일부 수정할 필요가 생겼다. 그래서 플러그인을 확장하는 방법을 열심히 찾아 정리해보았다.
- Javascript, CSS, PHP에 대해 아는 바가 없거나, 티끌만한 지식만 가지고 있으며, 생각한 대로 안될 때마다 좌충우돌하면서 검색/적용/수정의 삽질을 하며 접근하고 있습니다.
- 개인적인 필요에 따라 정리한 문서로 오류가 있을 수 있으며, 오류 발견 시 친절하게 댓글을 달아주시면 수정 보완하도록 하겠습니다.
글의 순서
[wordpress] 플러그인 만들기 (1)
[wordpress] 플러그인 만들기 (2) - 기능 추가하기
[wordpress] 플러그인 만들기 (3) - Override Template
[wordpress] 플러그인 만들기 (4) - 카카오톡 공유하기 샘플
0. 전제 조건/필요 사항
- 플러그인, 테마 파일을 수정하지 않는다 (업데이트 시 코드가 꼬이는 문제는 피해야 함)
- Child Theme를 사용하는 환경을 기준으로 한다.
- ① 플러그인의 기존 기능을 변경하거나, ② 플러그인의 기능에 추가하거나, ③ UI를 변경해야 할 필요가 있다.
1. 워드프레스 플러그인 만들기
'워드프레스 플러그인 만들기', 'create wordpress plugin', 'extend wordpress plugin' 등의 키워드로 검색하면 꽤 많은 문서를 발견할 수 있다. 1
이 중 https://1stwebdesigner.com/wordpress-plugin-development/ 의 문서가 친절하게 정리가 잘 된 편이라 위 문서의 설명에 따라 아래와 같이 Blank Plugin을 만들어본다.
① wp-content/Plugins 폴더 아래에 나의 플러그인 폴더를 만든다.
플러그인 폴더명은 무엇이든 관계없지만, 다른 기존의 플러그인들과 충돌되지 않도록 정하는 것이 좋다. ②번 순서에서 만들 php 파일 만으로도 플러그인을 만들 수 있지만, wp-content/Plugins 폴더 아래에 여러 플러그인들이 뒤섞이지 않게 하려면 플러그인별로 폴더를 별도로 갖는 것이 좋다.
bkj-template-plguin 폴더 생성
② 플러그인 파일을 만든다. (PHP 파일)
내 플러그인을 정의할 플러그인 파일을 만든다. PHP 파일의 이름은 폴더와 마찬가지로 무엇이든 관계없다.
bkj-template.php 파일 생성
이 상태로는 워드프레스 어드민의 Plugin 메뉴를 선택해도 사용가능한 플러그인 리스트에 내 플러그인이 나타나지 않는다.

③ 플러그인 파일에 플러그인에 대한 기본 정보를 입력한다.
<?php /* Plugin Name: bkj Plguin Template Plugin URI: https://bekseju9n.pe.kr/1 Description: Template for createing new plugin Version: 0.1 Author: bekseju Author URI: https://bekseju9n.pe.kr/2 License: GPL2 */ ?>
위와 같이 플러그인 파일을 수정하고 다시 플러그인 메뉴에 들어가보면 다음과 같이 플러그인을 확인할 수 있다.
다른 언어와 유사하게 PHP도 /* */ 또는 //를 사용하여 주석을 입력할 수 있다. PHP 주석 안에 위와 같이 Plugin Name, Plugin URI 등을 입력한다. 각 항목의 의미는 다음과 같다.
