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