Blog

  • 혼잣말

    나는 귀찮은 것이 싫다. 뭐든 대충대충 하는 것이 좋다.

  • ESNext #4: 블록 에디터 속성

    블록 에디터는 post_content 필드에 직접 기록된다. 그리고 기본적으로 블록의 내용 또한 이 필드 안에 본문으로서 기록된다. 예를 들어, ESNext #2: 블록 제작에서 작성한 Hello, World! 블록은 다음처럼 텍스트로 기록된다. HTML 코드로 기록되는 것이 보인다. 그리고 주석으로 이것이 워드프레스 블록임을, 또 어떤 블록 타입인지를 기록하는 것이 보인다. wp:로 시작하고 /wp:로 닫는 것으로 보인다. ‘wp-esnext-study/wes02-hello-world‘는 내가 지정한…

  • 최근 N 개의 파일을 남기고 모두 삭제

    아래처럼 실행: 출처: Stack Overflow

  • ESNext #3: 사이드바

    이번에는 사이드바의 제어에 대해 예제 코드를 작성해본다. 사이드바는 문서 전체나 일부 블록, 혹은 플러그인이 확장할 수 있도록 되어 있다. 처음에는 사이드바가 휙휙 변해서 혼동이 많았지만, 몇 번 보고 그 동작에 대해 이해하기 시작하니 나쁘지 않다. 이 사이드바는 이제 매우 중요한 의미가 있다. 클래식 에디터에서는 글 편집 이외의 여러 제어 요소들을 메타 박스로 처리했다. 이 메타…

  • WPML에서 추가한 태그의 언어가 포스트의 언어와 달라요?!

    워드프레스 편집 화면에서 아래 위젯을 이용해 기존의 태그를 가져오거나, 새로운 태그를 작성할 수 있습니다. 그런데 WPML을 사용하는 경우에 태그를 추가할 때 작성중인 언어의 태그가 나오는 것이 아닌, 엉뚱한 언어의 태그가 달려 나오는 경우가 종종 있을 것입니다. 이 포스트에서는 그 원인이 무엇인지, 그리고 어떻게 해결할 수 있는지에 대해 작성하려고 합니다. 단, 새 버전의 에디터인 구텐베르크에서 글…

  • ESNext #2: 블록 제작

    블록과 블록 에디터 환경에서 자유자재로 원하는 기능을 만들고 싶다. 기존에는 페이지를 제작할때 주로 숏코드를 사용했다. 물론 숏코드는 여전히 유용하고 유효하다. 페이지의 모든 내용이 고정되며 페이지 전반에 어떤 특정 기능을 구현해야 할 때, 그리고 그 때 서버 사이드 스크립트가 더 편리할 때는 그렇게 작성하는 것도 편리하다. 그러나 엘레멘터 같은 비주얼 빌더들이 워드프레스 제작 환경에는 사실상 표준이…

  • ESNext #1: 리액트 사용

    블록 에디터가 워드프레스 생태계에 주는 여파는 꽤 크다. 단순히 쓰기 편한 새로운 에디터가 등장한 것 뿐만이 닐 것이다. 이제 새로운 프론트엔드 개발 기법들을 적극적으로 반영해야 한다. 리액트는 새로운 워드프레스 코어 코드의 중요한 의존성이 되었다. 물론 필수는 아니겠지만 개발자는 보다 리액트를 잘 이해해야 할 필요가 있다. 아마 꽤 오랫동안은 그 영향력이 유지되겠지만 점차 jQuery는 폐기될 것이다.…

  • 워드프레스 코어 #3

    2020년 08월 04일 네번째 모임 발표 자료 워드프레스 데이터베이스와 회원 로그인에 대한 자료입니다. 슬라이드 링크

  • 워드프레스 코어 #2

    지난 시간에 이어 코어 두 번째 이야기를 준비했습니다. 이번에는 wp() 함수에서 일어나는 라우팅에 대해 알아봅니다. URL을 입력하면 각 주소에 따라 서로 다른 콘텐츠가 나옵니다. 어떤 주소로는 단일 포스트 세부 내용이 나오고, 또다른 주소로는 아카이브 페이지가, RSS 피드가 나옵니다. 이게 어떻게 가능할까요? 이 원리를 간단히 알아봤습니다. 슬라이드 보기

  • 워드프레스 코어 #1

    2020년 7월 2일 두번째 모임 발표 워드프레스가 사용자로부터 요청을 받으면, 응답을 보내기까지 어떤 일들이 일어나는지 간략하게 알아본 자료입니다. 슬라이드 링크

  • 워드프레스 개발자 관련 커뮤니티를 만들고 싶습니다

    강력한 워드프레스 개발자 커뮤니티를 구축하고 싶습니다. 워드프레스 개발자니까 기반은 워드프레스로 작성하고 싶습니다. 탄탄한 사이트를 원합니다. 그래서 테마와 플러그인은 직접 개발하고 싶습니다. 개발자끼리 정보를 공유하고 개발 관련 이슈를 많이 논하는 커뮤니티로 만들고 싶습니다.

  • 내가 CPT UI나 ACF를 싫어하는 이유

    CPT UI의 문제점 CPT UI를 쓰면 커스텀 포스트나 택소노미를 빠르게 생성할 수 있다. 하지만 빠른 것이 무조건 좋은 것만은 아니다. 콘텐츠의 성격이 커스텀 포스트로 잘 반영되어야 한다. 즉 커스텀 포스트 생성시 여러 속성을 통해 조절해야만 하지만 UI로 접근하는 사람들은 그런 디테일을 잘 고려하지 않는다. 다만 CPT UI에서는 충분히 그런 디테일을 제공한다. 누차 얘기하지만 툴을 비난하는…

  • Astra 테마 분석 노트

    아스트라 테마 특징 장점: 엄청나게 많은 부분에 디테일하게 액션과 필터가 정의되어 있어 커스터마이즈 할 수 있는 여지가 풍부하다. 단점: 부분부분 디테일하게 1:1 파트별로 커스터마이즈가 가능하나 지나치면 너무 디테일한 것이 독이 되어 나중에 돌아가는 것 파악이 어려움. 사실 일반적인 테마 커스텀들의 문제점이긴 하지만. 아스트라는 액션 필터가 너무 세밀해서 이 문제가 부각된다. 아스트라 테마 동작 포인트 노트…

  • 워드프레스 코어 한 벌로 여러 싱글 사이트 세팅하기

    워드프레스는 멀티사이트로 운용할 수 있다. 한 벌의 코어로 여러 사이트를 제작할 수 있다. 이 때 site1.example.com 같은 서브도메인이나 아니면 example.com/site1 처럼 패스로 각 사이트를 생성할 수 있으며, 약간의 수정만 거치면 각 사이트마다 독자적인 도메인 설정도 가능하다. 그러나 이 방법은 한 코어에 wp-config.php와 플러그인, 테마, 그리고 일부 DB 내용을 공유하게 된다. 즉, 완전히 분리된 사이트를 운용하게…

  • flush_rewrite_rules() 함수에 대해

    플러그인/테마 개발시 flush_rewrite_rules()라는 함수를 심심찮게 쓴다. 안 하면 사이트에서 404 에러가 날 수 있어 항상 코드에 집어 넣는 나름 중요한 역할을 하는 녀석이다. 그런데 이 함수가 하는 역할이 정확히 무엇인지 알고 있는가? 이 포스트에서 이 함수에 대해 좀 더 정확히 알아보고 기록해본다.

  • 파이어폭스 고정 탭 유지

    방법1: StartupApps 확장 설치. 방법2: Reddit 에 설명한 대로 about:config 에서 browser.sessionstore.restore_pinned_tabs_on_demand 값을 true 로 설정.

  • 워드프레스 플러그인 번역

    ‘wp i18n make-pot’ 명령을 이용해서 만들 수 있는데, XDEBUG 사용시 에러가 난다. 좀 더 예전부터 사용했던 레시피는 이렇게 한다. http://i18n.svn.wordpress.org/tools/ 여기 리포지터리를 체크아웃한다. 이 곳에 보면 makepot.php 파일이 있다. 다음처럼 명령을 준다: php makepot.php wp-plugin [디렉토리] [.pot 파일 경로] 예시: PoEdit을 이용하는 방법도 있으나, 이 방법의 장점은 플러그인 헤더까지 번역문으로 넣어준다는 것이다.

  • 워드프레스 개발 키워드: 문자열

    프로그래밍에서 상수와 참조는 중요하다. 변하지 않는다는 약속을 하는 상수는 에러로 가득한 코드에서 유일한 희망이고, 참조는 효율적인 관리를 위한 기본이다. 그런데 곰곰히 생각하면 상수은 변하지 않는다는 약속을 전제로 정의하긴 하지만, 그 기반이 부서지면 상수는 효력을 발휘하기 어렵다. 참조 또한 마찬가지. 참조의 대상이 되는 원본이 변화하는 상황이면 참조는 신뢰를 잃게 된다. 데이터베이스는 ID, 주 키 (primary key)를…