WordPress 테마 개발 환경 준비
코드를 작성하기 시작하기 전에, 안정적이고 효율적인 로컬 개발 환경을 구축하는 것이 매우 중요합니다. 이를 통해 오프라인 상태에서 작업을 수행할 수 있을 뿐만 아니라, 온라인 서버에서 테스트를 진행할 때 발생할 수 있는 위험을 줄일 수 있습니다.
로컬 개발 환경 설정
가장 일반적으로 사용되는 방법은 XAMPP, MAMP, Laragon과 같은 통합된 로컬 서버 소프트웨어 패키지를 사용하는 것입니다. 이러한 도구들은 Apache, MySQL, PHP를 한 번에 설치해주어 복잡한 설정 과정을 생략할 수 있게 해줍니다. WordPress 개발을 위해서는 Local by Flywheel이나 DesktopServer와 같이 WordPress에 최적화된 환경을 사용하는 것이 더 추천됩니다. 이러한 도구들은 사이트 생성, 데이터베이스 관리, PHP 버전 전환 등의 편리한 기능을 제공합니다.
핵심 도구 및 편집기 선택
코드 편집기가 필요합니다. Visual Studio Code, PhpStorm, Sublime Text를 추천합니다. 이 세 가지 도구 모두 강력한 코드 하이라이팅, 자동 완성, 프로젝트 관리 기능을 제공합니다. 특히 Visual Studio Code는 WordPress 관련 플러그인(예: WordPress Snippet, PHP Intelephense)과 함께 사용하면 개발 효율성을 크게 향상시킬 수 있습니다.
추천 읽기 워드프레스 플러그인 개발 마스터하기: 처음부터 첫 기능 확장을 구축하기。
또한, 버전 관리 시스템인 Git은 필수적입니다. 독립 개발자라 하더라도 코드 변경 사항을 추적하고, 브랜치를 생성하며, 프로젝트를 백업하기 위해 Git을 사용하는 것이 좋은 습관입니다. 로컬에서 리포지토리를 초기화할 수 있으며, 나중에 GitHub, GitLab, Bitbucket과 같은 원격 호스팅 플랫폼에 코드를 업로드하는 것도 고려해 볼 수 있습니다.
理解 WordPress 主题的基本结构
표준적인 WordPress 테마는 특정 파일들을 포함하는 폴더로, 웹사이트의 레이아웃과 기능을 정의하는 파일들이 이 폴더에 저장됩니다. 이 폴더는 일반적으로 `wp-content/themes` 디렉터리 내에 위치합니다. /wp-content/themes/ 디렉터리 내에는 가장 간단한 테마라도 반드시 두 개의 핵심 파일을 포함해야 합니다.
주제의 스타일시트 파일
style.css 이 파일은 테마의 “신분증” 역할을 하며, 테마의 외관을 정의하는 데 사용됩니다. 파일의 헤더 부분에 있는 주석들에는 테마에 관한 모든 메타정보가 포함되어 있으며, 이 정보들은 WordPress에 의해 읽혀서 관리자 패널의 “외관” -> “테마” 페이지에 표시됩니다. 기본적인 헤더 주석의 예는 다음과 같습니다:
/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://example.com
Description: 这是一个用于学习 WordPress 主题开发的入门主题。
Version: 1.0.0
License: GPL v2 or later
Text Domain: my-first-theme
*/ 이 파일에서는 웹사이트의 프론트엔드 외관(글꼴, 색상, 레이아웃 등)을 제어하기 위한 모든 CSS 스타일 규칙을 계속 작성하게 됩니다.
핵심 인덱스 템플릿 파일
index.php 이것은 주제의 기본 템플릿이며, 반드시 필요합니다. WordPress가 더 구체적인 템플릿 파일을 찾을 수 없을 때(예: single.php 또는 page.php페이지를 렌더링할 때 사용됩니다. 일반적으로 WordPress의 템플릿 태그를 포함하고 있으며, 헤더, 글 내용의 반복 출력, 사이드바, 푸터를 호출하는 데 사용됩니다.
추천 읽기 워드프레스 테마 개발 완전 가이드: 입문서부터 실습까지, 개인화된 웹사이트를 구축하는 데 필요한 기술들。
이 두 파일 외에도, 기능이 완전한 테마는 일반적으로 다음과 같은 템플릿 파일들을 포함합니다:
* header.php웹사이트의 헤더 영역 (Header Area)<head> (상단 네비게이션과 함께.)
* footer.php웹사이트의 푸터 영역.
* functions.php`: 주제 기능, 등록 메뉴, 사이드바 등을 추가하는 데 사용됩니다.
* page.php`: 정적 페이지를 렌더링하는 데 사용됩니다.
* single.php`: 단일 기사를 렌더링하는 데 사용됩니다.
* archive.php`: 분류, 태그 등의 아카이브 페이지를 렌더링하는 데 사용됩니다.
제로에서 시작하여 첫 번째 테마를 만들어 보세요.
이제, 각 부분이 어떻게 협력하는지 이해하기 위해 가장 간단한 테마를 직접 만들어 보겠습니다.
기본 파일과 디렉터리를 생성합니다.
먼저, 여러분의 로컬 WordPress 사이트에서… /wp-content/themes/ 디렉터리 내에 새로운 폴더를 만들고, 그 이름을 ‘new_folder’로 지정하세요. my-first-theme그런 다음, 해당 폴더 내에 두 개의 빈 파일을 생성하세요:style.css 그리고 index.php이전 섹션에서 언급한 CSS 헤더 주석을 다음과 같이 작성하세요: style.css 파일.
기본적인 인덱스 템플릿을 구축합니다.
다음으로, 편집하세요. index.php 파일입니다. 가장 기본적인 버전은 WordPress의 핵심 함수들을 호출하는 내용을 포함할 수 있습니다. 먼저, 우리는… get_header() 함수를 사용하여 헤더를 가져옵니다.
<main id="primary" class="site-main">
<?php
if ( have_posts() ) :
while ( have_posts() ) :
the_post();
// 在这里输出文章内容
the_title( '<h1>', '</h1>' );
the_content();
endwhile;
else :
echo '<p>暂无文章。</p>';
endif;
?>
</main> 이 코드는 WordPress의 핵심 기능인 “The Loop”를 구현합니다. 이 기능은 글이 있는지 확인한 다음, 각 글의 제목과 내용을 순회하여 출력합니다. 마지막으로, get_footer() 푸터를 추가하세요.
기능 추가 및 등록 메뉴
주제를 더 실용적으로 만들기 위해, 우리는… functions.php 이 파일에서는 WordPress가 제공하는 기능들을 통해 작업을 수행할 수 있습니다. add_theme_support() 이 함수는 기사의 썸네일(특징적인 이미지) 및 사용자 정의 로고와 같은 테마 기능을 활성화하는 역할을 합니다.
추천 읽기 WordPress 테마 개발 전략: 제로에서 프로페셔널级 웹사이트 테마 구축하기。
<?php
function my_first_theme_setup() {
// 让主题支持文章特色图像
add_theme_support( 'post-thumbnails' );
// 注册一个导航菜单位置
register_nav_menus( array(
'primary' => esc_html__( '主导航菜单', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );
// 注册一个侧边栏小工具区域
function my_first_theme_widgets_init() {
register_sidebar( array(
'name' => esc_html__( '主侧边栏', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => esc_html__( '在此添加小工具。', 'my-first-theme' ),
) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' ); 그런 다음, 당신은 필요합니다. header.php 파일 내에서 사용합니다. wp_nav_menu() 이 함수는 사용자가 등록한 메뉴를 표시하는 역할을 합니다.
주제의 고급 개발 및 배포 준비
기본 테마가 완성되면, 더 세밀한 템플릿과 훅(hook)을 사용하여 그 기능과 유연성을 향상시킬 수 있습니다.
템플릿 컴포넌트를 사용하여 구조를 최적화하세요.
템플릿 파트(Template Parts)는 재사용 가능한 템플릿 조각(예: 기사 요약 카드)을 모듈화하는 효과적인 방법입니다. 여러분은 자신만의 템플릿 파트를 만들 수 있습니다. template-parts/content.php 파일에, 반복문 내에서 각 기사의 내용을 출력하는 코드를 넣으세요. 그런 다음… index.php `for` 루프 내에서 사용합니다. get_template_part() 함수를 사용하여 그것을 호출하세요:
while ( have_posts() ) :
the_post();
get_template_part( 'template-parts/content', get_post_type() );
endwhile; 액션 및 필터 후크를 활용하기
후크(Hooks)는 WordPress의 플러그인 기반 시스템의 핵심이며, 테마 개발에도 널리 사용됩니다. 액션 후크(Action Hooks)를 사용하면 특정 시점에 코드를 삽입할 수 있으며, 예를 들어 글 내용 뒤에 추가적인 내용을 추가하는 데 사용될 수 있습니다. 필터 후크(Filter Hooks)를 사용하면 데이터를 수정할 수 있으며, 예를 들어 글의 요약문 길이를 조정하는 데 사용될 수 있습니다.
예를 들어, wp_enqueue_scripts 액션 훅을 사용하여 JavaScript 및 CSS 파일을 올바르게 로드하세요:
function my_first_theme_scripts() {
// 引入主题的主样式表
wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri() );
// 引入自定义的 JavaScript 文件
wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' ); 최종 테스트를 수행하고 파일을 패키징합니다.
발행하기 전에 반드시 철저한 테스트를 거쳐야 합니다. 해당 콘텐츠가 Chrome, Firefox, Safari, Edge와 같은 다양한 브라우저에서 정상적으로 표시되는지 확인해야 합니다. 또한, 모바일 기기와 컴퓨터를 사용하여 반응형 디자인이 제대로 작동하는지도 검토해야 합니다. WordPress 관리자 페이지에서 디버깅 모드를 활성화하세요. wp-config.php 중국어 설정 define( 'WP_DEBUG', true );모든 PHP 경고 및 오류를 수정하세요. 댓글, 검색, 페이지 나누기와 같은 모든 WordPress 코어 기능이 정상적으로 작동하는지 확인하십시오.
마지막으로, 개발 과정에서 생성된 로그 파일, 백업 파일 등 불필요한 파일들을 모두 삭제하세요. 그런 다음 전체 테마 폴더를 ZIP 파일로 압축하세요. 이 ZIP 파일을 사용하면 설치를 진행할 수 있습니다.
요약
WordPress 테마 개발은 기본 구조를 이해하는 것부터 시작됩니다.style.css, index.php)을 시작으로, 점차 템플릿 구조, 함수 핸들러, 모듈화된 구성 요소에 대한 이해를 심화해 나갑니다. 로컬 개발 환경을 설정하고 핵심 파일을 생성한 후, 이를 활용하여… functions.php 기능을 향상시키고 최종적으로 엄격한 테스트를 거친 후에는 표준을 준수하면서도 기능이 풍부한 테마를 만들 수 있습니다. 이러한 핵심 개념들을 숙달하면 원하는 웹사이트의 외관과 기능을 자유자재로 커스터마이징할 수 있게 되며, Underscores, Sage와 같은 더 고급 프레임워크를 배우기 위한 탄탄한 기반을 마련할 수 있습니다.
자주 묻는 질문
WordPress 테마를 개발하려면 반드시 PHP를 숙달해야 하나요?
네, WordPress 테마를 심층적으로 개발하려면 PHP를 반드시 숙달해야 합니다. WordPress 자체가 PHP로 작성되었기 때문에 모든 템플릿 파일(.php)에는 콘텐츠를 동적으로 생성하기 위한 PHP 코드가 포함되어 있습니다. 서브테마의 스타일을 수정하는 데는 많은 PHP 코드를 작성하지 않아도 가능하지만, 사용자 정의 템플릿을 만들거나 복잡한 기능을 구현하거나 쿼리 로직을 수정하려면 PHP 지식이 필수적입니다.
functions.php 파일은 웹사이트의 템플릿 시스템에서 사용되는 함수들을 정의하는 파일입니다. 이 파일에는 웹사이트의 다양한 기능을 구현하는 함수들이 포함되어 있으며, 이러한 함수들은 템플릿 파일에서 호출될 수 있습니다. 예를 들어, 메뉴를 생성하거나, 데이터를 처리하거나, 페이지를 표시하는 등의 작업을 수
functions.php 文件是主题的“功能中心”。它用于添加或修改主题的功能,而无需修改核心文件。其主要作用包括:启用主题功能支持(如特色图像、自定义背景)、注册导航菜单和侧边栏小工具区域、排队引入样式表和脚本文件、定义自定义函数以及使用动作和过滤器钩子来修改 WordPress 的默认行为。
자주제(subtopic)란 주제(topic)의 하위에 있는 더 구체적인 내용이나 관련 정보를 담은 부분을 말합니다. 예를 들어, 블로그 글에서 “여행”이라는 주제에 대해 쓰고 있다면, “유럽 여행”이나 “동남아시아 여행”과 같은 자주제를 설정할 수 있습니다. 자주제를 사용하면 글의 구조가 더
자주제(subtopic)는 다른 주제(부모 주제, parent topic)에 의존하는 주제로, 부모 주제의 모든 기능, 스타일, 템플릿 파일을 상속받지만, 새로운 기능을 안전하게 추가하거나 기존 기능을 수정할 수 있도록 해줍니다. 자주제를 사용하는 주요 목적은 부모 주제가 업데이트될 때도 사용자가 직접 추가한 수정 사항들을 그대로 유지할 수 있도록 하는 것입니다. 만약 부모 주제의 파일을 직접 수정하면 업데이트로 인해 해당 수정 사항들이 삭제되지만, 자주제의 수정 사항들은 그대로 남아 있습니다. 이는 주제를 커스터마이징하고 업그레이드 및 유지보수를 수행할 때 가장 좋은 방법입니다.
내 테마가 다국어 번역을 지원하도록 하려면 어떻게 해야 하나요?
테마를 다국어로 지원하도록 만드는 것(국제화 및 현지화, i18n/l10n)은 주로 두 단계를 포함합니다. 첫째로, 테마의 모든 텍스트 문자열에 WordPress의 번역 기능을 적용해야 합니다. 예를 들어, esc_html__( ‘文本’, ‘text-domain’ ) 또는 _e( ‘文本’, ‘text-domain’ )둘째, Poedit와 같은 도구를 사용하여 .pot 템플릿 파일을 생성합니다. 번역가는 이 템플릿을 기반으로 .po 및 .mo 파일(예: zh_CN.po)을 만들 수 있습니다. style.css 헤더가 올바르게 설정되었습니다. Text Domain 그것이 핵심입니다.
다음 단계는 무엇인가요?
확장된 독서 및 실무 지식
다음은 이 도움말의 주제와 관련이 있으며 더 깊이 있게 읽기에 적합합니다. 현재 문제와 가장 가까운 문서부터 시작하여 점차 주변 주제로 확장하는 것이 우선순위를 정하는 것이 좋습니다.