글 형식

소개

글 형식버전 3.1에 소개된 테마 기능이다. 글 형식은 메타 정보이다. 글 형식은 글의 외모를 사용자 정의하기 위해 테마가 사용하는 메타 정보이다. 글 형식 기능에는 표준 목록이 있다. 이 기능을 지원하는 모든 테마에서 사용할 수 있다. 테마는 목록에 있는 모든 형식을 지원할 필요는 없다. 테마 또는 플러그인으로 새로운 형식을 만들 수는 없다. 이 글 형식을 표준화하면, 수 많은 테마들이 서로 호환되고, 외부 블로깅 도구가 일관된 방법으로 이 기능에 접근할 수 있다.

즉, 글 형식을 지원하는 테마를 사용하여, 블로거는 라디오 버튼 목록에서 글 형식을 선택함으로써 외모를 변경할 수 있다.

일례로, 과거에는 Asides를 사용하여 Asides라는 카테고리가 생성되고, 글은 이 카테고리로 분류되었다. 그리고 post_class() 또는 in_category('asides')의 스타일 규칙에 따라 다르게 표시되었다. 새로운 접근 방식인 글 형식을 사용하여, 테마에서 하나의 글 형식을 지원하도록 추가할 수 있다. (예. add_theme_support('post-formats', array('aside'))), 그리고 해당 글 형식은 ‘공개하기’ 메타 박스에서 선택할 수 있다. get_post_format($post->ID) 함수를 호출하여 글 형식을 결정하기 위해 사용할 수 있다. post_class()는 CSS 스타일링을 위해 “format-asides” 클래스를 생성한다.


지원되는 글 형식

테마가 지원한다면, 다음 글 형식을 사용할 수 있다.

실제 입력한 글의 내용은 변경되지 않는다. 테마에서 선택된 글 형식에 따라 글이 다르게 표시되게 하려면, 사용자가 선택할 수 있다. 예를 들어, 테마에서 “Status” 글의 제목을 표시하지 않을 수 있다. 표시하는 방법은 전적으로 테마가 선택하지만, 아래 내용은 일반적인 지침이다.

  • 추가정보(aside) – 일반적으로 제목이 없는 스타일. 페이스북 노트 업데이트와 비슷하다.
  • 갤러리(gallery) – 이미지의 갤러리. 글이 갤러리 숏코드를 포함하고 있으며, 이미지가 첨부되어 있다.
  • 링크(link) – 다른 사이트로의 링크. 글 안에 첫 번째로 외부 링크 <a href=””> 태그가 사용되거나. 또는 글이 URL로만 구성될 수도 있다. 그리고 해당 글에 연결(anchor)하기 위해 URL에 제목 (post_title)을 첨부한다.
  • 이미지(image) – 개별 이미지. 글의 처음에 <img /> 태그가 사용될 수 있다. 또는 글이 하나의 URL로만 구성되어 있는데, 이것은 이미지의 URL이고, 글의 제목 (post_title)은 이미지의 제목 속성(title attribute)이 된다.
  • 인용(quote) – 인용문. 인용문을 blockquote 요소를 포함한다. 또는 내용이 모두 인용문이고, 소스/저자가 제목이다.
  • 상태(status) – 짧은 상태 업데이트, 트위터의 상태 업데이트와 비슷하다.
  • 비디오(video) – 개별 비디오. 글의 처음에 <video /> 태그가 있거나 또는 비디오 object/embed 코드가 포함되어 있다. 블로그에서 비디오가 지원된다면(플러그인을 사용하는 경우와 같이), 글에 첨부 자료로 비디오가 포함될 수도 있다.
  • 오디오(audio) – 오디오 파일. 팟캐스팅에 사용된다.
  • 채팅(chat) – 아래와 같은 채팅 내용:
John: foo
Mary: bar
John: foo 2

참고: 글을 작성하거난 편집할 때, 글 형식이 지정되지 않도록 표준(Standard)이 적용된다. 글 형식이 지정되면, 표준은 적용되지 않는다.


참조 함수

주요 함수
기타 함수


Theme Support 추가

테마는 functions.php 파일에 add_theme_support()를 사용해서, 아래와 같은, 글 형식의 배열을 통과시켜서 어떤 글 형식이 지원되는 지를 워드프레스에 알려준다:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

init 훅(hook)이 호출되기 전에, 이 함수가 호출되어야만 한다. 사용하기 좋은 훅은after_setup_theme 훅이다.


Post Type Support 추가

글 형식은 functions.php 파일안에 add_post_type_support()를 사용하여, 어떤 글 형식을 사용하고 있는지 워드프레스에 알려준다:

// add post-formats to post_type 'page'
add_post_type_support( 'page', 'post-formats' );

// add post-formats to post_type 'my_custom_post_type'
add_post_type_support( 'my_custom_post_type', 'post-formats' );

또는 register_post_type() 함수 안에, ‘글 형식(post-formats)’을 추가한다, ‘supports’의 parameter array:

$args = array(
	...
	'supports' => array('title', 'editor', 'author', 'post-formats')
); 
register_post_type('book', $args);


Formats 사용

테마에서, 글의 형식을 확인하기 위해 get_post_format()를 사용하고, 글 형식에 따라 외모를 변경한다. 기본 글 형식은 FALSE 값을 반환한다. 또는 has_post_format() 조건 태그를 사용한다:

if ( has_post_format( 'video' )) {
  echo 'this is the video format';
}

스타일링 규칙을 가지고 형식을 사용할 수도 있다. 동적인 스타일링 클래스로 글을 감싸기 위해, 테마에서는 감싸는 코드(wrapper code) 안에 post_class() 함수를 사용해야 한다. 글 형식으로 별도의 “format-foo”와 같은 클래스가 추가될 수 있다.

예를 들어, 테마의 스타일시트에 아래와 같이 추가하여, 상태(status ) 형식에서 글 제목을 숨길 수 있다:

.format-status .post-title {
display:none;
}


추천 스타일링

글 형식을 원하는 방식으로 표시하기 위해 스타일링하고 디자인할 수 있지만, 각각의 글 형식은 ,현대적인 사용법에 따라, 특정 “스타일”이 어울린다. 각 형식의 사용 방법을 명심하는 것이 좋다. 이렇게 하면, 독자가 특정 형식의 글을 시각적으로 쉽게 인식할 수 있다.

예를 들어, 추가 정보(aside), 링크(link) 및 상태(status) 형식은 일반적으로 제목 또는 저자 정보가 표시되지 않는다. 이것들은 간단하고, 짧고, 그다지 중요한 것이 아니다. 추가정보(aside)는 한, 두 문장이고, 링크는 안에 있는 URL로 링크되는 한 문장일 것이다. 링크와 추가 정보는 둘 다 (the_permalink()를 사용하여) 개별 글 페이지로의 링크를 가질 수 있고, 댓글도 달 수 있다. 그러나 상태(status) 형식은 링크가 없을 가능성이 많다.

반면, 이미지 형식의 글은 캡션/텍스트와 함께 또는 캡션/텍스트 없이, 일반적으로 하나의 이미지 만을 포함하고 있다. 오디오/비디오 글은 이미지와 똑같지만 오디오/비디오가 추가된다. 이 3개의 형식은 해당 콘텐츠를 표시하기 위해 플러그인 또는 표준 Embeds를 사용할 수 있다. 콘텐츠를 따로 설명할 필요가 없기 때문에, 제목과 저자는 표시되지 않을 수도 있다.

인용(quote) 형식은 특히 추가 정보 없이 한 사람의 인용문을 작성하는데 잘 어울린다. 글에 인용문 만을 넣는다면, 인용된 사람의 이름을 글의 제목에 입력한다. the_content()를 표시하기 위해 이것만으로 스타일을 적용할 수 있고, the_title()를 사용하여, 필자 이름을 적은 행으로 인용된 사람의 이름을 표시할 수 있다.

특히 채팅(chat) 형식은 대부분 폭이 고정되는 형식으로 표시될 것이다. .format-chat에 스타일 적용하여, 글을 폭이 고정되는 형식으로 표시할 수 있다. 아마도 내부는 회색 또는 비슷한 배경이 적용되어, 시각적으로 채팅 세션이라는 것을 알 수 있을 것이다.


자식 테마의 글 형식

자식 테마에서는 부모 테마에서 정의한 글 형식이 적용된다. 자식 테마에서는 글 형식에 대한 add_theme_support() 호출은 우선 순위에서 부모 테마보다 가 나중에 수행된다. 그래서 기존 목록에 추가되지 않고, 덮어 쓰게된다.

add_action( 'after_setup_theme', 'childtheme_formats', 11 );
function childtheme_formats(){
     add_theme_support( 'post-formats', array( 'aside', 'gallery', 'link' ) );
}

remove_theme_support('post-formats')을 호출하면 모든 형식이 제거된다.


이전 버전과 호환성

플러그인과 테마가 워드프레스 이전 버전과 호환되어야 한다면, “post_format” 용어에 post-format-$format이라는 용어를 추가해야 한다. 예를 들어,

wp_insert_term( 'post-format-aside', 'post_format' );

그밖에 register_taxonomy()를 사용하여 post_format 용어를 등록해야 한다.


소스 파일


외부 자료


관련 함수

Post Formats:
set_post_format(),
get_post_format(),
has_post_format(),
the_post_format_audio(),
get_the_post_format_media(),
get_content_audio(),
the_post_format_chat(),
get_the_post_format_chat(),
get_content_chat(),
add_chat_detection_format(),
the_post_format_gallery(),
get_content_galleries(),
get_post_gallery_images(),
the_post_format_image(),
get_the_post_format_image(),
get_content_images(),
the_post_format_quote(),
get_the_post_format_quote(),
get_content_quote(),
the_post_format_url(),
get_the_post_format_url(),
get_content_url(),
the_post_format_video(),
get_content_video(),
the_remaining_content(),
get_the_remaining_content(),
get_post_format_meta(),
post_format_content_class(),
get_post_format_content_class(),
post_formats_compat()

Theme Support:
add_theme_support(),
remove_theme_support(),
current_theme_supports()

Features:
sidebar,
menus,
post-formats,
post-thumbnails,
custom-background,
custom-header,
automatic-feed-links,
content_width,
editor-style,
html5

댓글 남기기