수익형 블로그를 위한 워드프레스 테마, 직접 만들면 달라집니다
워드프레스로 블로그나 웹사이트를 운영하시면서 어떤 테마를 골라야 할지 고민 많으시죠? 저 역시 처음 워드프레스를 시작했을 때, 수많은 테마 중에서 제 목적에 맞는 것을 찾는 데 많은 시간을 보냈습니다. 특히 수익형 블로그를 목표로 하신다면, 단순히 예쁜 디자인을 넘어 구글이 좋아하는 구조와 빠른 로딩 속도를 갖춘 테마가 필수적이라고 생각합니다. 이러한 고민을 해결하고, 나아가 직접 나만의 워드프레스 테마를 만들 수 있도록 돕고자 이 글을 쓰게 되었습니다.
목차
1. 워드프레스 테마의 기본 구조 이해하기
2. 핵심 테마 파일 상세 코드 분석
3. 직접 만든 테마 설치 방법
4. 자주 묻는 질문
워드프레스 테마의 기본 구조 이해하기

워드프레스 테마는 단순히 디자인만 담당하는 것이 아니라, 웹사이트의 기능과 콘텐츠를 어떻게 보여줄지 결정하는 핵심적인 역할을 합니다. 효과적인 테마 제작을 위해 가장 먼저 알아야 할 것은 테마를 구성하는 기본적인 디렉토리와 파일 구조입니다.
워드프레스 테마 폴더(예:
rankablog-theme/) 안에는 다음과 같은 핵심 파일들이 포함됩니다.
style.css: 테마 정보와 웹사이트의 전체적인 디자인(폰트, 색상, 레이아웃 등)을 정의합니다. 모든 테마에 필수적인 파일입니다.index.php: 웹사이트의 메인 페이지를 보여주는 기본 템플릿 파일입니다. 다른 특정 템플릿 파일이 없을 때 워드프레스가 기본적으로 로드하는 파일이기도 합니다.functions.php: 테마의 추가 기능이나 설정을 정의하는 파일입니다. 썸네일 지원, HTML5 지원 등 다양한 워드프레스 기능을 활성화할 수 있습니다.header.php: 웹사이트의 상단 영역(헤더)을 담당하는 파일입니다. 주로 웹사이트 제목, 내비게이션 메뉴, 메타 태그 등이 포함됩니다.footer.php: 웹사이트의 하단 영역(푸터)을 담당하는 파일입니다. 저작권 정보, 위젯 영역 등이 이곳에 위치합니다.single.php: 개별 게시물(블로그 글)을 클릭했을 때 나타나는 단일 글 페이지의 레이아웃을 정의합니다.page.php: 블로그 글이 아닌 '소개', '연락처'와 같은 고정 페이지의 레이아웃을 정의합니다.archive.php: 카테고리, 태그, 날짜별 아카이브 페이지 등 여러 게시물을 목록으로 보여줄 때 사용되는 템플릿 파일입니다.
핵심 테마 파일 상세 코드 분석

이제 각 핵심 파일들이 어떤 코드로 구성되며, 어떤 역할을 하는지 구체적인 예시 코드를 통해 알아보겠습니다.
1. style.css: 테마 정보 및 기본 스타일
style.css 파일은 테마의 정체성을 정의하고 웹사이트의 시각적인 스타일을 결정하는 역할을 합니다. 파일 상단에는 워드프레스가 테마를 인식할 수 있도록 테마 이름, 제작자, 버전 등 필수 정보가 주석 형태로 포함되어야 합니다.
/*
Theme Name: Rankablog Theme
Theme URI: https://rankablog.com
Author: Seong Kim
Author URI: https://rankablog.com
Description: 워드프레스 기본 구조를 학습하기 위한 아주 간단한 테마입니다.
Version: 0.1
*/
body {
font-family: sans-serif;
padding: 2rem;
background-color: #f9f9f9;
color: #333;
}
이후에는 body 태그와 같이 기본적인 HTML 요소에 대한 CSS 스타일을 정의하여 웹사이트의 전반적인 분위기를 설정할 수 있습니다.
2. index.php: 메인 템플릿
index.php는 워드프레스 웹사이트의 메인 페이지를 구성하는 기본 뼈대입니다. 이 파일은 header.php와 footer.php를 포함하여 전체적인 레이아웃을 잡고, 워드프레스 루프(The Loop)를 사용하여 게시물을 불러와 표시합니다.
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php bloginfo('name'); ?> - <?php bloginfo('description'); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
</head>
<body>
<?php get_header(); ?>
<h1><?php bloginfo('name'); ?></h1>
<p><?php bloginfo('description'); ?></p>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div><?php the_excerpt(); ?></div>
<?php endwhile; else : ?>
<p>게시물이 없습니다.</p>
<?php endif; ?>
<?php get_footer(); ?>
</body>
</html>
<?php bloginfo('name'); ?>과 같은 워드프레스 함수는 웹사이트의 이름이나 설명 같은 동적인 정보를 불러와 표시합니다. 워드프레스 루프(if ( have_posts() ) : while ( have_posts() ) : the_post();)는 데이터베이스에서 게시물을 가져와 순환하며 제목(the_title()), 링크(the_permalink()), 요약(the_excerpt()) 등을 출력하는 핵심 코드입니다.
3. functions.php: 테마 기능 정의
functions.php 파일은 테마에 새로운 기능을 추가하거나 워드프레스의 기본 동작을 변경할 수 있는 곳입니다. 이곳에 작성하는 코드는 워드프레스가 로드될 때 함께 실행됩니다.
<?php
// 썸네일 기능 지원
add_theme_support('post-thumbnails');
// HTML5 지원
add_theme_support('html5', array('search-form', 'comment-form', 'comment-list', 'gallery', 'caption'));
?>
위 예시처럼 add_theme_support() 함수를 사용하여 게시물 썸네일 기능이나 HTML5 마크업 지원 등을 활성화할 수 있습니다. 이곳에 불필요한 코드가 많아지면 로딩 속도에 영향을 줄 수 있으니 주의해야 합니다.
4. header.php & footer.php: 상단 및 하단 레이아웃
이 두 파일은 웹사이트의 모든 페이지에 공통적으로 나타나는 헤더와 푸터 영역을 담당합니다. index.php나 single.php, page.php 등 다른 템플릿 파일에서 get_header()와 get_footer() 함수를 호출하여 이 파일들의 내용을 포함시킵니다.
header.php 예시
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title><?php bloginfo('name'); ?> - <?php bloginfo('description'); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
</head>
<body>
footer.php 예시
</body>
</html>
5. single.php & page.php: 단일 글 및 고정 페이지 템플릿
이 파일들은 각각 개별 게시물과 고정 페이지의 내용을 어떻게 보여줄지 정의합니다. index.php와 마찬가지로 워드프레스 루프를 사용하여 해당 콘텐츠를 불러와 출력합니다.
single.php 예시
<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
<?php endwhile; else : ?>
<p>내용이 없습니다.</p>
<?php endif; ?>
<?php get_footer(); ?>
page.php 예시
<?php get_header(); ?>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<div><?php the_content(); ?></div>
<?php endwhile; else : ?>
<p>페이지가 없습니다.</p>
<?php endif; ?>
<?php get_footer(); ?>
6. archive.php: 아카이브 템플릿
archive.php는 특정 카테고리, 태그, 날짜 등으로 필터링된 게시물 목록을 보여주는 페이지에 사용됩니다. 이 파일도 워드프레스 루프를 통해 해당 조건에 맞는 게시물들을 불러옵니다.
<?php get_header(); ?>
<h1><?php the_archive_title(); ?></h1>
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<div><?php the_excerpt(); ?></div>
<?php endwhile; else : ?>
<p>아카이브에 게시물이 없습니다.</p>
<?php endif; ?>
<?php get_footer(); ?>
the_archive_title() 함수를 사용하여 현재 보고 있는 아카이브 페이지의 제목(예: "카테고리: 워드프레스")을 동적으로 표시할 수 있습니다.
직접 만든 테마 설치 방법

위에서 살펴본 파일들을 모두 준비했다면, 이제 직접 만든 테마를 워드프레스에 설치하고 활성화할 차례입니다. 생각보다 간단하게 진행할 수 있습니다.
- 모든 테마 파일을
rankablog-theme와 같은 하나의 폴더 안에 저장합니다. - 이 폴더를
rankablog-theme.zip형태로 압축합니다. - 워드프레스 관리자 페이지에 로그인합니다.
- 왼쪽 메뉴에서 모양 → 테마를 클릭합니다.
- 상단에 있는 새 테마 추가 또는 테마 추가 버튼을 클릭합니다.
- 테마 업로드 버튼을 클릭하고, 준비해둔
.zip파일을 선택하여 업로드합니다. - 업로드 완료 후, 활성화 버튼을 클릭하면 직접 만든 테마가 웹사이트에 적용됩니다.
수익형 블로그를 운영하신다면 테마의 가벼움과 최적화가 매우 중요합니다. 불필요한 기능이나 과도한 자바스크립트 사용은 페이지 로딩 속도를 저하시켜 검색 엔진 최적화(SEO)에 부정적인 영향을 줄 수 있습니다. 직접 테마를 만들 때는 필요한 기능만 포함하고, 클린 코드를 작성하여 최적의 성능을 유지하는 것이 좋습니다.
수익형 블로그를 위한 테마 핵심
style.css, index.php, functions.php, header.php, footer.php 등자주 묻는 질문
functions.php에 너무 많은 코드를 추가해도 괜찮을까요?functions.php는 테마의 기능을 확장하는 데 유용하지만, 너무 많은 코드를 추가하면 웹사이트 성능에 영향을 미칠 수 있습니다. 복잡하거나 독립적인 기능은 플러그인 형태로 분리하여 관리하는 것이 더 효율적이고 유지보수에도 용이합니다.워드프레스 테마를 직접 만드는 것은 쉽지 않은 일처럼 보일 수 있지만, 그 과정에서 워드프레스의 작동 방식과 구조를 깊이 이해하게 됩니다. 이는 장기적으로 웹사이트를 효율적으로 관리하고, 수익형 블로그로서의 잠재력을 최대한 발휘하는 데 큰 도움이 될 것입니다. 이 글이 여러분의 워드프레스 테마 제작 여정에 작은 보탬이 되기를 바랍니다.
관련글
태그: 워드프레스 테마 만들기, 워드프레스 테마 구조, 수익형 블로그 테마, 워드프레스 속도 최적화, 워드프레스 SEO, 워드프레스 커스텀 테마, 웹사이트 로딩 속도, 워드프레스 설치





