WordPress Structure Understanding

📌 WordPress 구조 개요

WordPress는 **PHP 기반 CMS(Content Management System)**이며, MySQL 데이터베이스와 함께 작동합니다.
핵심 구조는 다음과 같이 구성됩니다.


1️⃣ WordPress 디렉터리 구조

WordPress를 설치하면 기본적으로 다음과 같은 디렉터리와 파일이 생성됩니다.

/wordpress
│── wp-admin/          # 관리자 페이지 관련 파일
│── wp-content/        # 테마, 플러그인, 업로드 파일 저장
│   │── themes/        # 테마 파일
│   │── plugins/       # 플러그인 파일
│   │── uploads/       # 업로드된 미디어 파일
│── wp-includes/       # WordPress 핵심 기능 파일 (코어 라이브러리)
│── wp-config.php      # 데이터베이스 및 기본 설정 파일
│── .htaccess          # URL 재작성 및 보안 설정
│── index.php          # 메인 엔트리 파일
│── functions.php      # 테마별 기능 정의 (테마 내부)
│── wp-load.php        # 부트스트랩 로더

📌 주요 디렉터리 & 파일 설명

경로설명
wp-admin/WordPress 관리자 패널 관련 파일 (/wp-admin URL로 접근)
wp-content/사용자 맞춤 설정(테마, 플러그인, 업로드 파일) 저장
wp-includes/WordPress 코어 파일 및 PHP 라이브러리
wp-config.php데이터베이스 연결 및 기본 설정 파일
.htaccessApache URL 재작성 및 보안 설정
index.phpWordPress 엔트리 파일 (모든 요청이 여기로 전달됨)

2️⃣ WordPress 데이터베이스 구조

WordPress는 MySQL 데이터베이스를 사용하며, 기본적으로 12개의 주요 테이블을 포함합니다.

테이블설명
wp_posts게시글(페이지, 글, 첨부 파일 포함) 저장
wp_postmeta게시글의 메타데이터(커스텀 필드) 저장
wp_users사용자 계정 정보 저장
wp_usermeta사용자 메타데이터 저장
wp_comments댓글 정보 저장
wp_commentmeta댓글 메타데이터 저장
wp_terms카테고리 및 태그 저장
wp_term_taxonomy카테고리/태그와 관계 저장
wp_term_relationships게시글과 카테고리/태그 연결
wp_options사이트 설정(일반 설정, 플러그인 설정 등) 저장
wp_links링크(블로그 롤 기능, 현재 거의 사용 안 함) 저장
wp_plugins활성화된 플러그인 정보 저장

💡 모든 테이블 이름 앞에는 wp_ 접두사가 붙지만, 설치 시 변경 가능


3️⃣ WordPress 동작 원리 (요청 흐름)

📌 1. 클라이언트 요청

사용자가 https://example.com/sample-page에 접근하면:

📌 2. .htaccessindex.php 역할

  • .htaccess 파일이 mod_rewrite를 사용하여 index.php로 요청 전달
  • index.phpwp-load.phpwp-blog-header.phpwp-includes/template-loader.php 실행

📌 3. 데이터베이스 조회 및 페이지 렌더링

  • wp_query 객체가 URL을 분석하여 적절한 게시글을 검색
  • wp_posts 테이블에서 데이터를 가져옴
  • 테마의 header.php, content.php, footer.php 파일을 합쳐 HTML 페이지 출력

4️⃣ WordPress 테마 구조

WordPress 테마는 wp-content/themes/ 디렉터리에 위치하며, 기본적으로 다음 파일들로 구성됩니다.

/wp-content/themes/my-theme/
│── style.css          # 테마 스타일시트 (필수)
│── functions.php      # 테마 기능 설정 (필수)
│── header.php         # 헤더 파일
│── footer.php         # 푸터 파일
│── index.php          # 메인 템플릿 (필수)
│── single.php         # 단일 글 템플릿
│── page.php           # 페이지 템플릿
│── archive.php        # 카테고리/태그/날짜별 목록
│── sidebar.php        # 사이드바 파일
│── 404.php            # 404 오류 페이지

💡 필수 파일: style.css, index.php, functions.php

📌 style.css (테마 정보 설정)

/*
Theme Name: My Custom Theme
Theme URI: https://example.com
Author: John Doe
Version: 1.0
*/

📌 functions.php (테마 기능 추가)

<?php
function my_theme_setup() {
    add_theme_support('post-thumbnails');  // 썸네일 기능 활성화
    register_nav_menus(array(
        'primary' => __('Primary Menu', 'my-theme')
    ));
}
add_action('after_setup_theme', 'my_theme_setup');
?>

5️⃣ WordPress 플러그인 구조

WordPress 플러그인은 wp-content/plugins/에 위치하며, PHP 파일을 포함하는 구조입니다.

/wp-content/plugins/my-plugin/
│── my-plugin.php      # 플러그인 메인 파일 (필수)
│── includes/          # 추가 기능 포함
│── assets/            # 이미지, CSS, JS 파일

📌 my-plugin.php (간단한 플러그인 예제)

<?php
/*
Plugin Name: My Custom Plugin
Description: 간단한 WordPress 플러그인 예제
Version: 1.0
Author: John Doe
*/

function my_custom_message() {
    echo "<p>Hello, this is my custom plugin!</p>";
}
add_action('wp_footer', 'my_custom_message');
?>

📌 위 코드는 사이트 하단(푸터)에 메시지를 추가하는 간단한 플러그인입니다.


📌 정리 (WordPress 구조 핵심 정리)

구성 요소설명
파일 시스템wp-admin/(관리자), wp-content/(사용자 데이터), wp-includes/(코어 파일)
데이터베이스wp_posts(글), wp_users(사용자), wp_options(설정) 등 12개 테이블
요청 흐름index.phpwp-load.phpwp-blog-header.php템플릿 파일
테마style.css, functions.php, header.php, index.php 필수
플러그인wp-content/plugins/my-plugin.php 형태로 추가

🚀 WordPress의 파일 구조와 데이터 흐름을 이해하면, 테마/플러그인 개발 및 사이트 커스터마이징이 쉬워집니다!

Leave a Reply

Your email address will not be published. Required fields are marked *