여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. 워드프레스 테마 제작 – 10편 - date.php 만들기
워드프레스 테마 제작 – 10편 – date.php 만들기
2년전 작성
2년전 수정

sidebar에서 년월을 선택했을 때 그 년월에 해당하는 글만 표시해주는 워드프레스 date 아카이브 템플릿 date.php 파일을 만들어보자.

워드프레스 date.php

date.php를 만들면 archive.php랑 다른 템플릿으로 년 월이 제목으로 표시되고 밑에 목록 나오게 설정할 수 있다.

워드프레스 date.php

date.php 파일 만들기

date.php 예시
<?php 
	/* Template Name: date page */
	get_header();
?>
<h2><?php echo single_month_title(); ?></h2>
<?php
	if ( have_posts() ) :
		while ( have_posts() ) : the_post();
			global $post;
			$category = get_the_category($post->ID);
			echo $category[0]->name;
?>
			<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
			the_time('Y-m-d'); the_author_posts_link();

		endwhile;

		else:
?>
		<p><?php _e('이 사용자가 작성한 포스트가 없습니다.'); ?></p>

<?php endif; ?>
</div>
<?php
	global $wp_query;
	$big = 999999999;
	echo paginate_links(
		array(
			'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
			'format' => '?paged=%#%',
			'current' => max( 1, get_query_var('paged') ),
			'total' => $wp_query->max_num_pages,
			'prev_next' => false,
		)
	);
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
사용된 코드 설명
single_month_title();
:
이 달의 년도, 월 가져오는 함수.

functions.php

기존 포스트 정렬 함수
<?php
	function order_posts( $query )
	{
		if ( !is_admin() && $query->is_tag() )
		{
			$query->set( 'orderby', 'title' );
			$query->set( 'order', 'ASC');
		}
	}
	add_action( 'pre_get_posts', 'order_posts' );
?>
수정된 포스트 정렬 함수
<?php
	function order_posts( $query )
	{
		if ( !is_admin() && $query->is_tag() )
		{
			$query->set( 'orderby', 'title' );
			$query->set( 'order', 'ASC');
		}
		
		elseif ( !is_admin() && $query->is_date() )
		{
			$query->set( 'orderby', 'date' );
			$query->set( 'order', 'ASC');
		}
	}
	add_action( 'pre_get_posts', 'order_posts' );
?>

테마 적용

워드프레스 테마 제작 - 10편 - date.php 적용

문제 없이 출력 잘 되는것 확인된다.

참고
관련 포스트

Mingg`s Diary
밍구
공부 목적 블로그