개발 워크플로우 실무
pre_get_posts — 가드 두 줄을 빠뜨리면 관리자까지 바뀝니다
이 훅은 모든 WP_Query 에 대해 돕니다. 메뉴 · 위젯 · 관리자 목록까지 전부 포함되므로, 판정 없이 조건을 넣으면 의도하지 않은 화면이 조용히 바뀝니다.
Technote
워드프레스를 코드로 다루는 개발자를 위한 가이드. 훅 · WP-CLI · Git 워크플로우 · 배포 자동화를 다룹니다.
글 51편· 개발자
개발 워크플로우 실무
이 훅은 모든 WP_Query 에 대해 돕니다. 메뉴 · 위젯 · 관리자 목록까지 전부 포함되므로, 판정 없이 조건을 넣으면 의도하지 않은 화면이 조용히 바뀝니다.
SEO 입문
SEO 플러그인 두 개는 두 배의 최적화가 아니라 서로를 무효화하는 중복 선언입니다. canonical · 사이트맵 · 구조화 데이터가 두 벌씩 나가는 순간 검색엔진은 어느 쪽도 믿지 않습니다.
개발 워크플로우 실무
워드프레스는 옵션과 메타에 직렬화된 PHP 배열을 넣고, 그 안에는 문자열의 길이가 함께 적혀 있습니다. SQL REPLACE 는 값만 바꾸고 길이는 그대로 둡니다.
서버 · 인프라 실무
서비스 네 개를 컨테이너로 가르는 이유는 유행이 아니라 재현성입니다. 다음 서버에서도, 사고 후 복구에서도, 같은 파일이 같은 스택을 다시 세웁니다.
개발 워크플로우 실무
permission_callback 은 선택 인자가 아닙니다. 빠뜨리면 라우트가 공개되고 코어가 경고를 남깁니다. 그리고 args 스키마를 주면 검증 코드를 핸들러에 손으로 쓰지 않아도 됩니다.
성능 최적화 실무
WP_Query 는 자기 결과에 대해서만 캐시를 채웁니다. 손으로 만든 ID 목록에는 그 혜택이 따라오지 않고, 그 차이가 쿼리 수를 결정합니다.
테마 · 플러그인 실무
복사한 마크업은 반드시 어긋납니다. 한쪽을 고치면 다른 쪽은 그대로 남고, 두 화면이 서로 다른 말을 하기 전까지 아무도 모릅니다.
개발 워크플로우 실무
SQL 한 줄로 도메인을 바꾸면 위젯과 테마 설정이 조용히 빈 값이 됩니다. 직렬화가 문자열 길이를 함께 저장하기 때문이고, 이 문제는 도구를 바꾸는 것으로 완전히 사라집니다.
개발 워크플로우 실무
우선순위는 권한이 아니라 줄 서는 위치입니다. 번호를 올려 이기는 방법은 상대도 쓸 수 있어서 영구적인 승자가 없고, 번역 필터를 뒤에서 덮으면 원문이 그대로 나갑니다.
개발 워크플로우 실무
배포의 품질은 성공했을 때가 아니라 실패했을 때 드러납니다. 롤백 경로를 먼저 만들고 나서 올리는 순서를 정리합니다.
보안 실무
커밋된 비밀값은 이미 유출된 비밀값입니다. 히스토리를 다시 써도 되돌아오지 않고, 남는 해결은 교체 하나뿐입니다.
성능 최적화 실무
preload 는 우선순위를 사는 게 아니라 빌리는 것입니다. 남발하면 정작 급한 자원이 밀립니다. LCP 요소를 실측으로 특정하고 그 경로의 자원만 올리는 순서를 정리합니다.