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

워드프레스 테마 제작시 있으면 좋고 없어도되는 파일 중 작성자 정보를 표시해주는 템플릿 author.php 파일을 만들고 싶었다.

워드프레스 author.php

플러그인 이용하는게 정말 정말 편하다. 그렇지만 테마에서 플러그인 없이 최대한 구동하는 방법을 찾아보고 싶었다.

워드프레스에서 사용자가 작성한 글을 모아서 볼 수 있는 페이지를 만들고 싶다.

어떻게 만들 수 있는지 궁금해서 방법을 찾아 봤더니 역시나 wordpress 공식 홈페이지가 제일 잘 나와있어서 참고했다.

author.php 파일 만들기

author.php 파일을 만들 때 사용하는 루프문은 기존에 사용한 archive.php나 single.php와 동일하다.

author.php 예시
<?php get_header(); ?>
<div>
    <?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
    ?>

    <h2><?php echo $curauth->nickname; ?></h2>
    <dl>
        <dt>홈페이지</dt>
        <dd><a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a></dd>
        <dt>소개</dt>
        <dd><?php echo $curauth->user_description; ?></dd>
    </dl>

    <h2><?php echo $curauth->nickname; ?>이(가) 작성한 포스트:</h2>

    <ul>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <li>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>">
            <?php the_title(); ?></a>,
            <?php the_time('d M Y'); ?> in <?php the_category('&');?>
        </li>

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

    <?php endif; ?>
    </ul>
</div>

<?php get_sidebar(); ?>
<?php get_footer(); ?>
사용된 코드 설명
$curauth
:
$curauth로 변수 지정. 어떤 사용자가 표시되는지 확인 후 사용자 관리 화면에 입력된 정보를 검색하는 하기위해 변수 지정하여 진행한다.
echo $curauth->nickname;
:
닉네임 가져온 후 표시하는 코드.
echo $curauth->user_url;
:
URL을 가져온 후 표시하는 코드.
echo $curauth->user_description;
:
자기소개(신상정보 부분에 기재된 소개글)를 가져온 후 표시하는 코드.
the_category(‘&’);
:
카테고리 불러오는 코드.
_e(‘이 사용자가 작성한 포스트가 없습니다.’);
:
‘이 사용자가 작성한 포스트가 없습니다.’를 출력해주는 코드.

single.php에 적용

기존 single.php
<?php get_header(); ?>
<?php 
if ( have_posts() ) : 
	while ( have_posts() ) :
		the_post();
		the_category();
		the_time(); the_author();
		the_title( '<h1>', '</h1>' ); 
		the_content();
	endwhile; 
else: 
	_e( '죄송합니다. 포스트를 찾을 수 없습니다.', 'mingg' ); 
endif; 
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

여기에 작성자 이름 보이는 코드를 작성자 이름에 링크 걸리는 코드로 바꿔보자.

수정된 single.php
<?php get_header(); ?>
<?php
	if ( have_posts() ) :
		while ( have_posts() ) :
			the_post();
			the_category();
			the_time(); the_author_posts_link();
			the_title( '<h1>', '</h1>' );
			the_content(); 
		endwhile; 

	else: _e( '죄송합니다. 포스트를 찾을 수 없습니다.', 'mingg' ); 
endif;
?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
사용된 코드 설명
the_author_posts_link();
:
글 작성한 작성자이름에 링크 거는 코드.

archive.php에 적용

기존 archive.php
<?php get_header(); ?>
<?php single_cat_title(); ?>
<?php
		if(have_posts()):
			while (have_posts()):
				the_post();
?>
				<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
				the_time('Y-m-d');
			endwhile;
		endif;
?>
<?php get_footer(); ?>

여기서도 작성자 이름 보이는 코드를 작성자 이름에 링크 걸리는 코드로 바꿔보자.

수정된 archive.php
<?php get_header(); ?>
<?php single_cat_title(); ?>
<?php
		if(have_posts()):
			while (have_posts()):
				the_post();
?>
				<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
<?php
				the_time('Y-m-d'); the_author_posts_link();
			endwhile;
		endif;
?>
<?php get_footer(); ?>

Plug-in들의 오류로 404오류가 발생되는 경우가 있다. 그 땐 Plug-in 다 비활성화 하면 404오류 발생되지 않는다. 하나씩 다시 활성화하면서 확인하면 된다.

이번에 Nowhosting 에서 테스트용 호스팅을 받았다. 운영자분께서 굉장히 친절하시고 운영을 잘하고자하시는 열의가 느껴지는듯하다.
 

적용된 화면

워드프레스 테마 만들기 - 7편 - archive.php 적용
워드프레스 테마 만들기 - 7편 - single.php 적용
워드프레스 테마 만들기 - 7편 - author.php 적용

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

참고
관련 포스트

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