워드프레스 테마 만들기 | 다양한 템플릿 만들기 > Post Format

워드프레스는 글 형식(Post Format)이 있어 포스트에 형식을 지정하고 그에 맞게 다른 모양으로 컨텐츠를 보여줄 수 있습니다. 사용할 수 있는 포스트 형식은 다음과 같습니다.

  • aside - Typically styled without a title. Similar to a Facebook note update.
  • gallery - A gallery of images. Post will likely contain a gallery shortcode and will have image attachments.
  • link - A link to another site. Themes may wish to use the first <a href=””> tag in the post content as the external link for that post. An alternative approach could be if the post consists only of a URL, then that will be the URL and the title (post_title) will be the name attached to the anchor for it.
  • image - A single image. The first <img /> tag in the post could be considered the image. Alternatively, if the post consists only of a URL, that will be the image URL and the title of the post (post_title) will be the title attribute for the image.
  • quote - A quotation. Probably will contain a blockquote holding the quote content. Alternatively, the quote may be just the content, with the source/author being the title.
  • status - A short status update, similar to a Twitter status update.
  • video - A single video. The first <video /> tag or object/embed in the post content could be considered the video. Alternatively, if the post consists only of a URL, that will be the video URL. May also contain the video as an attachment to the post, if video support is enabled on the blog (like via a plugin).
  • audio - An audio file. Could be used for Podcasting.
  • chat - A chat transcript, like so:

글 형식을 사용할지 말지는 테마가 정합니다. 만약 포스트 형식을 사용하고 싶다면 functions.php에 다음의 코드를 추가합니다.

add_theme_support( 'post-formats', array( 'image', 'quote' ) );

image와 quote 형식을 사용하겠다는 뜻입니다. 이제 포스트 쓰기 또는 편집 화면으로 가면 글 형식이 추가된 걸 볼 수 있습니다.

이제 글 형식에 따라 다른 파일을 사용하도록 설정해보겠습니다. single.php를 그대로 복사해서 content.php라는 파일을 만듭니다. 그리고 single.php의 코드를 다음의 내용으로 바꿉니다.

<?php
  $format = get_post_format();
  get_template_part( 'content', $format );
?>

get_post_format으로 Post Format 값을 받아서 format이라는 변수에 저장합니다. 그리고 content에 format 값이 붙은 php 파일을 불러옵니다. 예를 들어 글 형식이 표준(Standard)이라면 content.php를 사용하고, 포스트 형식이 quote라면 content-quote.php 파일을 불러옵니다. 만약 content-quote.php 파일이 없다면 content.php 파일을 사용합니다.

다음의 코드를 가진 content-quote.php 파일을 만들겠습니다.

<?php get_header(); ?>
<div id="main">
  <div id="content">
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
      <div class="jb-post-single jb-format-quote">
        <h2>
          <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </h2>
        <?php the_content(); ?>
        <?php comments_template(); ?> 
      </div>
    <?php endwhile; else: ?>
      <h2>Sorry!</h2>
    <?php endif; ?>
  </div>
  <?php get_sidebar(); ?>
</div>
<?php get_footer(); ?>

content.php와 유사하나, 포스트 정보를 없앴고, 본문에 jb-format-quote라는 클래스를 넣었습니다.

style.css에 다음의 코드를 추가하겠습니다.

.jb-format-quote blockquote {
  color: #28b779;
  font-family: Georgia;
  font-style: italic;
}

이제 글 형식이 quote인 포스트를 보면, 작성 날짜 등의 포스트 정보가 나오지 않고, 본문의 인용문 글꼴이 다른 포스트와는 다르게 나옵니다.

참고로 글 형식을 quote로 정하면 body에 single-format-quote 클래스 값이 자동으로 생깁니다. 다른 글 형식도 마찬가지입니다.

Source Code Download : making-wordpress-theme-v1-chapter-5-2.zip

Created on 2014-01-24 01:06 | Updated on 2017-04-19 16:21

이 글을 공유하기

Kakao

워드프레스 프리미엄 테마 사이트