Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

워드프레스에서 프로그래밍 방식으로 커스텀 필드 추가하기

by
Difficulty:BeginnerLength:ShortLanguages:

Korean (한국어) translation by Dae-yeop Lee (you can also view the original English article)

워드프레스를 강력한 콘텐츠 관리 시스템으로 만들어주는 것 중 하나는 거의 백지 상태로 시작하는 post_meta 테이블에 커스텀 메타 필드를 손쉽게 추가할 수 있다는 점입니다.

커스텀 메타 필드를 얼마나 잘 활용하느냐는 WooCommerce 같은 특화된 플러그인이나 직접 필드를 생성하기 위한 Custom Fields Suite 또는 Pods 같은 커스텀 필드 플러그인을 활용하는 것에 좌우됩니다.

경우에 따라서는 포스트 메타 필드를 추가하고 거기에 데이터를 채우기 위해 워드프레스에서 제공하는 다양한 함수를 이용해 워드프레스 메타 데이터를 직접 관리할 수도 있습니다. 이 글에서는 post_meta 테이블에 데이터를 전달하는 기초적인 방법을 살펴보겠습니다.

이 글에서 다루는 내용은 일부러 제한을 뒀습니다. 좀 더 복잡한 작업을 하려면 WPDB 클래스나 다양한 기능을 제공하는 커스텀 필드 플러그인을 사용해야 할 것입니다.

대다수의 플러그인 또는 필드 몇 개만이 필요한 CMS 사이트의 경우 몇 가지 간단한 함수를 이용해 손쉽게 필드를 생성하고 관리할 수 있습니다.

메타 필드 추가하기

add_post_meta()를 이용하면 포스트에 메타 필드를 추가할 수 있습니다. 이 함수를 이용하면 특정 포스트에 필드를 추가할 수 있습니다. 예를 들어, 포스트 형식과 상관없이 ID가 12인 어떤 포스트에 이름이 'flavor'이고 값이 'vanilla'인 필드를 추가하려면 다음과 같이 하면 됩니다.

지난 글에서는 포스트 편집기의 커스텀 필드 사용자 인터페이스를 사용하는 법을 다뤘습니다. 키가 언더스코어(_)로 시작하는 필드는 비공개(private) 필드로 간주되어 커스텀 포스트 UI에 표시되지 않는 반면 언더스코어로 시작하지 않는 필드는 커스텀 포스트 UI에서 사용할 수 있습니다.

따라서 위 예제의 경우 커스텀 필드 UI를 통해 필드를 사용할 수 있습니다. 반면 해당 필드를 비공개 필드로 만들고 싶다면 필드명을 '_flavor'로 지정하면 됩니다.

한 가지 더 염두에 둬야 할 중요한 사항은 기본적으로 필드는 하나 이상의 값을 저장할 수 있다는 것입니다. 하지만 add_post_meta()의 네 번째 인자를 true로 지정하면 유일한 값 필드가 만들어지고 단 하나의 값만 담을 수 있습니다.

이 말의 의미는 다음과 같습니다.

위 코드를 실행하면 'vanilla'와 'mint'가 담긴 배열이 반환됩니다. 반면 다음과 같이 네 번째 인자를 true로 지정해 두 번째 값이 추가되지 않게 할 수 있습니다.

이 경우 반환값은 'vanilla'가 됩니다.

포스트 메타 값 업데이트하기

앞의 예제에서는 유일한 메타 필드를 만드는 법을 보여드렸는데, 이 경우 필드에 단 하나의 값만 저장할 수 있었습니다. 하지만 기존 값을 변경하고 싶다면 어떻게 해야 할까요? 이 경우 다음과 같이 update_post_meta()를 사용하면 됩니다.

위 코드를 실행하면 'mint'가 출력됩니다.

앞서 살펴본 두 함수를 이용하면 데이터 배열을 전달할 수 있고, 해당 배열은 하나의 데이터로 저장됩니다. 워드프레스에서는 배열을 문자열로 직렬화하는 작업을 자동으로 처리합니다.

사용자 및 댓글 메타

지금까지 포스트에 대한 메타 데이터에 관해 살펴봤습니다. 하지만 사용자와 댓글에도 메타 데이터가 있습니다. 사용자와 댓글에 대해서도 포스트의 add_post_meta()update_post_meta()에 해당하고 그와 똑같이 동작하는 함수가 있는데, 콘텐츠 유형에 따라 사용하는 테이블이 달라집니다.

예를 들면, add_user_meta()update_user_meta()를 위에서 포스트에 대해 설명한 것과 정확히 동일한 방법으로 사용자 메타를 추가하거나 업데이트하는 데 사용할 수 있습니다. 댓글에 대해서는 add_comment_meta()update_comment_meta()를 사용하면 됩니다.

결론

이번 글에서는 커스텀 필드 사용자 인터페이스나 워드프레스에서 제공하는 함수를 이용해 포스트 메타 데이터를 추가하고 업데이트하는 기초적인 내용을 소개했습니다. 제가 연재하고 있는 메타 데이터 관련 글과 함께 이제 포스트 메타 데이터를 추가하고 활용하는 법을 이해하셨을 것입니다.

포스트 메타 데이터를 활용하는 방법은 무궁무진하며, 그것은 워드프레스의 가장 멋진 기능이자 워드프레스를 강력한 콘텐츠 관리 시스템으로 만들어주는 기능입니다.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.