수익형 블로그를 위한 워드프레스 테마, 직접 만들면 달라집니다

수익형 블로그를 위한 워드프레스 테마, 직접 만들면 달라집니다


나만의 워드프레스 테마 제작의 모든 것 워드프레스 테마 선택에 어려움을 겪고 계신가요? 수익형 블로그 운영에 필수적인 구글 친화적 구조와 빠른 로딩 속도를 갖춘 나만의 워드프레스 테마를 직접 만드는 방법을 상세히 알려드립니다.

워드프레스로 블로그나 웹사이트를 운영하시면서 어떤 테마를 골라야 할지 고민 많으시죠? 저 역시 처음 워드프레스를 시작했을 때, 수많은 테마 중에서 제 목적에 맞는 것을 찾는 데 많은 시간을 보냈습니다. 특히 수익형 블로그를 목표로 하신다면, 단순히 예쁜 디자인을 넘어 구글이 좋아하는 구조빠른 로딩 속도를 갖춘 테마가 필수적이라고 생각합니다. 이러한 고민을 해결하고, 나아가 직접 나만의 워드프레스 테마를 만들 수 있도록 돕고자 이 글을 쓰게 되었습니다.


목차

1. 워드프레스 테마의 기본 구조 이해하기

2. 핵심 테마 파일 상세 코드 분석

3. 직접 만든 테마 설치 방법

4. 자주 묻는 질문

워드프레스 테마의 기본 구조 이해하기

워드프레스 테마 파일을 구조적으로 배열한 설계도
워드프레스 테마의 핵심 파일 구조와 역할

워드프레스 테마는 단순히 디자인만 담당하는 것이 아니라, 웹사이트의 기능과 콘텐츠를 어떻게 보여줄지 결정하는 핵심적인 역할을 합니다. 효과적인 테마 제작을 위해 가장 먼저 알아야 할 것은 테마를 구성하는 기본적인 디렉토리와 파일 구조입니다.


Rankablog 테마의 기본 구조
워드프레스 테마 폴더(예: 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.phpfooter.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.phpsingle.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() 함수를 사용하여 현재 보고 있는 아카이브 페이지의 제목(예: "카테고리: 워드프레스")을 동적으로 표시할 수 있습니다.


직접 만든 테마 설치 방법

노트북 화면의 업로드 버튼을 클릭하는 손
직접 제작한 테마를 워드프레스에 설치하는 과정

위에서 살펴본 파일들을 모두 준비했다면, 이제 직접 만든 테마를 워드프레스에 설치하고 활성화할 차례입니다. 생각보다 간단하게 진행할 수 있습니다.


  1. 모든 테마 파일을 rankablog-theme와 같은 하나의 폴더 안에 저장합니다.
  2. 이 폴더를 rankablog-theme.zip 형태로 압축합니다.
  3. 워드프레스 관리자 페이지에 로그인합니다.
  4. 왼쪽 메뉴에서 모양테마를 클릭합니다.
  5. 상단에 있는 새 테마 추가 또는 테마 추가 버튼을 클릭합니다.
  6. 테마 업로드 버튼을 클릭하고, 준비해둔 .zip 파일을 선택하여 업로드합니다.
  7. 업로드 완료 후, 활성화 버튼을 클릭하면 직접 만든 테마가 웹사이트에 적용됩니다.
주의하세요!
수익형 블로그를 운영하신다면 테마의 가벼움최적화가 매우 중요합니다. 불필요한 기능이나 과도한 자바스크립트 사용은 페이지 로딩 속도를 저하시켜 검색 엔진 최적화(SEO)에 부정적인 영향을 줄 수 있습니다. 직접 테마를 만들 때는 필요한 기능만 포함하고, 클린 코드를 작성하여 최적의 성능을 유지하는 것이 좋습니다.



수익형 블로그를 위한 테마 핵심

구글 SEO: 구조적이고 가벼운 코드 중요
로딩 속도: 최소한의 기능으로 최적화
테마 필수 파일:
style.css, index.php, functions.php, header.php, footer.php
직접 제작 이점: 불필요한 요소 제거, 맞춤형 최적화 가능


자주 묻는 질문

Q: 테마를 직접 만드는 것이 왜 수익형 블로그에 도움이 되나요?
A: 직접 테마를 만들면 불필요한 코드나 기능을 제거하여 웹사이트의 로딩 속도를 최적화할 수 있습니다. 빠른 로딩 속도는 구글 검색 순위 상승에 긍정적인 영향을 미치고, 사용자 경험을 향상시켜 이탈률을 줄이며, 궁극적으로 광고 수익이나 제휴 마케팅 전환율 증가에 기여할 수 있습니다.
Q: functions.php에 너무 많은 코드를 추가해도 괜찮을까요?
A: functions.php는 테마의 기능을 확장하는 데 유용하지만, 너무 많은 코드를 추가하면 웹사이트 성능에 영향을 미칠 수 있습니다. 복잡하거나 독립적인 기능은 플러그인 형태로 분리하여 관리하는 것이 더 효율적이고 유지보수에도 용이합니다.
Q: 테마를 직접 만드는 것이 어렵다면, 어떤 테마를 사용하는 것이 좋을까요?
A: 직접 테마를 만드는 것이 부담스럽다면, 가볍고 SEO 친화적인 프리미엄 테마(예: GeneratePress, Astra, Kadence 등)를 선택하고 필요한 기능만 활성화하여 사용하는 것이 좋습니다. 이러한 테마들은 기본적으로 최적화가 잘 되어 있어 수익형 블로그 운영에 적합합니다.


워드프레스 테마를 직접 만드는 것은 쉽지 않은 일처럼 보일 수 있지만, 그 과정에서 워드프레스의 작동 방식과 구조를 깊이 이해하게 됩니다. 이는 장기적으로 웹사이트를 효율적으로 관리하고, 수익형 블로그로서의 잠재력을 최대한 발휘하는 데 큰 도움이 될 것입니다. 이 글이 여러분의 워드프레스 테마 제작 여정에 작은 보탬이 되기를 바랍니다.

관련글

태그: 워드프레스 테마 만들기, 워드프레스 테마 구조, 수익형 블로그 테마, 워드프레스 속도 최적화, 워드프레스 SEO, 워드프레스 커스텀 테마, 웹사이트 로딩 속도, 워드프레스 설치