워드프레스 강좌 / 사용자 정의 필드 입력하고 출력하기
사용자 정의 필드
사용자 정의 필드를 이용하여 글에 추가적인 정보를 입력하고 출력할 수 있습니다. 그 정보를 글 본문에 직접 입력할 수도 있지만, DB에 저장하면 출력하는 것 이외에도 여러 가지로 활용 가능하다는 장점이 있습니다.
사용자 정의 필드 입력하기
사용자 정의 필드는 글 쓰는 화면에서 입력합니다. 사용자 정의 필드를 입력하는 폼이 보이지 않는다면, 화면 옵션에서 [사용자 정의 필드]에 체크합니다.
글 입력 폼 밑에 사용자 정의 필드가 있습니다. [새로 입력]을 클릭합니다.
이름과 값을 입력 후 [사용자 정의 필드 추가] 버튼을 클릭하면 필드가 생성됩니다.
사용자 정의 필드는 여러 개 생성할 수 있습니다. 다음은 두 개의 사용자 정의 필드를 추가한 모습입니다.
color는 red, weather는 Cloudy로 정했습니다. 사용자 정의 필드를 만들었다면, 이름이 선택 목록에 추가되어 재사용이 편해집니다.
사용자 정의 필드 출력하기
테마 파일의 적절한 위치에 코드를 넣으면 사용자 정의 필드의 이름 또는 값이 출력됩니다. 적절한 위치는 보통 글(포스트)을 출력하는 루프(loop) 안이고, 글을 출력하는 템플릿 파일은 보통 single.php입니다.
해당 글에 추가된 사용자 정의 필드 전체를 출력하는 코드는
the_meta();
입니다. 예를 들어 Twenty Seventeen의 single.php의
while ( have_posts() ) : the_post();
아래에 the_meta();를 추가하면, 다음과 같이 순서 없는 목록으로 값과 이름이 출력됩니다.
특정 사용자 필드의 값만 출력하고 싶다면 get_post_meta() 함수를 이용합니다.
get_post_meta( $post_id, $key, $single )
- $post_id : 글의 아이디
- $key : 사용자 정의 필드 이름
- $single : true면 문자열로 반환하고, false 또는 설정하지 않으면 배열로 반환
예를 들어
echo get_post_meta( get_the_ID(), 'weather', true );
는 글의 weather의 값만 출력합니다.
출력 이외의 용도로 사용할 수도 있습니다. 예를 들어
if ( get_post_meta( get_the_ID(), 'color', true ) == "red" ) { echo ( '<style>p { color: red; }</style>' ); }
는 color의 값이 red일 때 문단의 색을 빨간색으로 만듭니다.
참고
사용자 정의 필드 관련 플러그인을 이용하면 체크박스, 라디오 버튼, 선택 목록 등 다양한 방식으로 값을 입력할 수 있습니다. 대표적인 플러그인은 Advanced Custom Fields입니다.