Blog

  • 워드프레스 자동 설치 스크립트 샘플

    이번 포스팅은 특정 디렉토리를 기준으로 DB 생성, 소스 다운로드, 설치 및 초기 셋팅을 정해진대로 수행하는 스크립트의 예제를 올린다. 그동안 간단히 만들어 사용한 거고 WP-CLI를 사용하는 좋은 예시인 것 같다. 코드는 gist 에서 확인할 수 있다. 이 코드에서 처음에 지정해 줘야 할 변수값들이 있다. 확인해 보자. WP_ROOT은 워드프레스 설치들을 모아놓은 상위 디렉토리이다. 여기가 만약 /home/changwoo/develop/wordpress였다면 이…

  • wp-cli 사용하기 #3

    어제의 포스팅에 이어 wp-cli에 대해 소개하는 포스팅을 작성한다. 오늘은 아마도 마무리하는 글에 걸맞게 실무적으로 유용한 명령들이 될 것이다.

  • wp-cli 사용하기 #2

    지난 포스트에 이어 wp cli 사용에 대해 계속 포스팅한다. 이 멋진 툴을 소개하려니 신난다. 한번에 좌르륵 풀어내기보다는 아껴서 조금씩조금씩 이야기하고 싶다. 자, 우선 무엇부터 시작할까?

  • wp-cli 사용하기 #1

    의식의 흐름대로 흘러가는 1일 1워프 중이다. 적당히, 진짜 적당껏 분량 조절해서 하루에 하나씩 원하는 내용을 적는 중이다. 오늘은 드디어 wp-cli의 이야기를 하게 된다. 워드프레스 개발자로서 반드시 숙지해야 할 녀석, 그리고 할 이야기가 무지무지 많은 녀석이다.

  • 워드프레스 플러그인/테마 올바르게 번역하기

    잘못된 방법 예전에 워드프레스 플러그인 만들기라는 문서를 작성한 적이 있다. 꽤 오래된 문서인데 (벌써 햇수로 6년 되었다!), 워드프레스 API는 여기서 그렇게 변경된 건 없는 것 같다. 이 문서는 귀찮아서 업데이트하지 않고 있는데, 여기서의 텍스트 번역 부분은 그 당시 워드프레스 환경 및 일반적인 PHP 애플리케이션에 대해서는 맞다. 그러나 더이상 이 방법이 올바르다고 보기 어렵다. 왜냐면 PoEdit을…

  • 플러그인 헤더 보충 설명

    플러그인에는 플러그인 헤더가 반드시 필요하다. Header Requirement 코덱스에도 잘 나와 있지만, 몇가지 보충 설명을 더하고자 한다. 플러그인 헤더를 작성하면 몇몇 내용은 플러그인 목록 정보에 반영된다. 한편 몇몇 내용은 플러그인 활성화 때 플러그인이 정상적으로 동작하는 환경인지 점검하기 위한 용도로 사용되기도 한다. 목록 정보에 반영되는 필드들 Plugin Name: 플러그인 필수 헤더. 플러그인의 제목으로 사용. Plugin URI: 기재하면…

  • wp-util #2: wp.ajax

    지난 포스트에 이어 이번에는 wp.ajax 에 대해 포스팅한다. wp.ajax에 대해 소개하고 wp.ajax와 wp.template을 활용한 초간단 플러그인을 같이 제작해 본다.

  • wp-util #1: wp.template

    오늘은 wp-util 스크립트를 소개하고자 한다. 경로는 /wp-includes/js/wp-util.js 이고, 이 스크립트 안에는 두가지 도구가 있는데, 하나는 wp.template, 나머지 하나는 wp.ajax이다. 간단하게 포스팅하는 것이 1일 1워프의 주제인데, 오늘 하루에 두가지를 다 포스팅하기는 내가 너무 힘들고 분량도 아까우므로 🙂 오늘은 그중 하나인 wp.template 만 알아보도록 하자.

  • 액션/필터 레퍼런스

    코어 동작 어딘가에 적절히 콜백을 덧대 자신이 원하는 동작을 만들어내는 것, 이것이 플러그인 개발의 핵심이 아닐까 한다. 그러려면 코어가 어떤 흐름으로 동작하는지, 어떤 액션과 필터를 제공하는지 알아두는 것은 자명하다. 그런 흐름을 잘 정리해 둔 문서가 바로 이 액션 레퍼런스와 필터 레퍼런스이다. 모든 필터와 액션을 담은 것은 아니겠지만, 리퀘스트를 받아 리스폰스를 내기까지의 순서를 따라 잘 나열되어…

  • dashicons

    워드프레스 대시보드(또는 어디서든)에서 사용되는 아이콘 모음이다. 웹사이트에서 간편히 전체 목록을 확인할 수 있다. 개발시 관리자 화면의 메뉴 아이콘을 꾸밀 때 특히 유용하다. 기본 아이콘인 톱니바퀴나 핀 말고 다양한 아이콘으로 만들어 보자. 목록에서 원하는 아이콘을 클릭하면 아이콘 이름, HTML 코드나 CSS 스타일이 적절히 출력된다. 커스텀 포스트나 메뉴를 삽입할 때는 아이콘 이름을 쓰고, 나머지 경우에서는 적당히 HTML…

  • wp_enqueue_script

    wp_enqueue_script() 함수는 직접적으로 HTML 코드에 스크립트를 조율해야 하는 과정을 없애준다. 스크립트간 의존성도 해결해주고, 캐시 문제도 해결해 준다. “JavaScript와 CSS를 삽입하는 과정을 명확히 알아두자.” 같은 긴 포스트를 작성하고는 싶지만, 글이 너무 길어지니 생략한다. 그보다는 문서 중 여러 JS 라이브러리의 핸들을 문서화한 부분을 오늘 포스트의 키 포인트로 전달하고 싶다. 워드프레스가 사용한 여러 유용한 라이브러리를 재활용하는 측면에서 꽤…

  • wp-config.php 설정 숙지하기

    wp-config.php 수정하기 문서. 여기 내용들은 완전히까지는 아니지만 그래도 매우 잘 알아두어야 할 사항들이다. 어정쩡하게 알아두지 말고 한 번쯤 꼭 숙독해 두어야 한다.

  • 테마 핸드북

    플러그인 핸드북이 있다면 대구를 맞춰야지.

  • 플러그인 핸드북

    자 간단하게 시작하자, 그리고 꾸준하게 가 보자. 그러려면 하찮게 가자.

  • front-page.php를 쓰지 말아야 할 이유

    front-page.php로 사이트 제작을 했다 낭패를 봤다. 이것을 쓰지 말아야할 이유를 반성하며 적어 보았다.

  • 제발 맨 아래 텀만 찍어라

    카테고리 찍을 때 고민될 것이다. 맨 아래 텀만 찍을 것인가, 아래 텀과 같이 상위 텀도 찍어야 할 것인가? 상위 텀을 안 찍으면 상위 텀에 포함 안되는 것 아닐까 고민한 적 있으신지? 보통 카테고리 같은 위계적인 택소노미에 대해 쿼리할 때 텀은 기본적으로 그 부모 위치의 텀은 기본적으로 모두 고려하여 작성이 되고, 하위 텀도 마찬가지다. 하위 텀은…

  • 같은 옵션에 경쟁을 붙이면 어떻게 될까?

    워드프레스 옵션 테이블에서 get_option(), update_option()을 빈번히 발생해 경쟁 조건을 일으켜 보았습니다. 그리고 이것을 어떻게 해결하는지 알아보았습니다.

  • 아파치 워드프레스 관리자 IP 접속 제한

    주로 보안 제약이 강한 대기업 블로그에서 주로 요구하는 사항인데, 관리자나 로그인 페이지의 접근을 IP 대역으로 막는다. 주의할 점은 관리자 페이지를 막아도 admin-ajax.php, admin-post.php 의 접근은 열어 두어야 한다는 거다. 그것까지 다 막으면 워드프레스의 일반적인 폼 제출과 AJAX 요청까지 다 틀어막혀 사이트 동작이 되지 않을 수 있다. 아래 코드를 참고하여 아파치 설정에 추가한다. LocationMatch 지시자는 .htaccess…

  • 죽고 싶지만 떡볶이는 먹고 싶어 감상

    사실 나는 독서를 잘 안한다. 책 읽는 습관을 들이지 못했다. 집에 있으면 누워 있기만 했고, 여유 있는 시간에는 게임, 만화, 유튜브 시청을 더 좋아한다. 그런데 요즘은 좀 달라졌다. 게임은 시들해졌고, 만화는 유치해졌다. 유튜브 동영상은 맨날 그나물에 그 밥이었다. 깊은 맛이 부족했다. 외롭다는 감정이 좀 고통스럽게 느껴졌다. 사람을 만나고 싶은데, 이야기하고, 듣고 싶고, 교류하고 싶은데 그게…

  • 이번 번역은 정말 아쉽다

    이번 워드프레스 한글 번역을 누가 했는지 물어보고 싶다. 업데이트를 ‘업대이트’, 페이지를 ‘패이지’라고 한다. 번역에서 % 서식 표시 미스로 인해 PHP 7.4이하에서는 경고, 8.0부터는 무려 에러를 낸다. 다만 ‘테마 디자인’을 ‘외관’으로 번역한 건 좀 맘에 든다.