정리부터 single-{format}.php – single.php – content-{format}.php – content.php 요런순서다. 역시 자식테마에서 동작가능
워드프레스는 글 형식(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 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 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
- 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' ) );
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(); ?>
스타일시트에 <div class=”jb-post-single jb-format-quote”> 해당하는 스타일 넣고, 하면 대강 포스트가 다르게 표현된다.