준비 작업: 로컬 개발 환경을 설정하세요.
어떤 코드도 작성하기 전에, 안정적이고 효율적인 로컬 개발 환경을 갖추는 것이 필수적입니다. 이를 통해 온라인 웹사이트에 영향을 주지 않으면서 자유롭게 테스트와 디버깅을 수행할 수 있습니다. 현재 가장 인기 있는 선택지는 Apache/Nginx, MySQL/MariaDB, PHP가 통합된 로컬 서버 소프트웨어 패키지들인데, 예를 들어 Local by Flywheel, XAMPP, MAMP가 있습니다. PHP 버전이 7.4 이상인지 확인하시고, MySQLi나 PDO와 같은 필수 확장 기능이 활성화되어 있는지도 확인해 주세요.
다음으로, 로컬 컴퓨터에 새로운 WordPress를 설치해야 합니다. WordPress.org 공식 웹사이트에서 최신 설치 파일을 다운로드한 후, 해당 파일을 로컬 서버의 웹사이트 루트 디렉터리(예: hhtdocs 또는 www 폴더)에 압축을 해제하세요. 그런 다음 브라우저를 사용하여 로컬 주소(예: http://localhost)에 접속하세요.http://localhost/your-site설정을 완료하기 위해 유명한 “5분 설치” 절차를 따르세요. 데이터베이스 이름, 사용자 이름, 비밀번호를 꼭 기억하세요. 이 정보들은 나중에 필요할 것입니다.wp-config.php파일 안에.
마지막으로, 편리하게 사용할 수 있는 코드 편집기나 통합 개발 환경(IDE)이 필요합니다. Visual Studio Code, PhpStorm, Sublime Text 모두 훌륭한 선택지로, PHP, HTML, CSS, JavaScript에 대한 강력한 구문 강조 기능, 코드 완성 기능, 디버깅 지원을 제공합니다. 편집기에 WordPress 관련 코드 조각이나 인텔리전스 기능을 제공하는 플러그인이 설치되어 있는지 확인하세요. 이를 통해 개발 효율성을 크게 향상시킬 수 있습니다.
추천 읽기 WordPress 테마 개발 완전 가이드: 제로에서 시작하여 맞춤형 웹사이트를 만들기。
워드프레스 테마의 기본 구조와 核心 파일을 이해하십시오.
가장 기본적인 WordPress 테마란, 본질적으로 웹사이트의 구조와 디자인을 정의하는 파일들의 모음입니다. 이 파일들은 웹사이트의 레이아웃, 색상, 글꼴, 기능 등을 결정하며, 사용자가 콘텐츠를 추가할 수 있는 기반을 제공합니다. 즉, WordPress 테마는 웹사이트의 외관과wp-content/themes/디렉터리 내에는 특정 기능을 가진 일련의 파일들이 포함되어 있는 폴더들이 있습니다. 이 파일들은 함께 작동하여 WordPress가 귀하의 웹사이트 콘텐츠를 어떻게 표시할지를 결정합니다. 먼저, 절대적으로 필요한 두 개의 파일부터 살펴보겠습니다.
첫 번째는style.css이 파일은 단순히 테마의 스타일시트일 뿐만 아니라, 그 테마의 “신분증”과도 같습니다. 파일의 헤더에 있는 주석 블록에는 WordPress가 해당 테마를 인식하는 데 필요한 모든 메타정보가 포함되어 있습니다. 가장 기본적인 예를 들어보면…style.css헤더는 다음과 같습니다:
/*
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
License: GPL v2 or later
Text Domain: my-first-theme
*/ 두 번째로 필요한 파일은index.php이 파일은 주제의 기본 템플릿 파일입니다. WordPress가 더 구체적인 템플릿 파일을 찾을 수 없을 때는 이 파일을 기본으로 사용하여 페이지를 렌더링합니다. 비록 이 파일에 처음에는 “Hello World”라는 간단한 문장만 포함되어 있더라도, 반드시 존재해야 합니다.
이 두 파일 외에도, 기능이 완전한 테마는 일반적으로 다음과 같은 요소들을 포함합니다:
* header.php웹 페이지의 헤더 영역을 정의합니다. 이 영역에는 일반적으로 다음과 같은 내용들이 포함됩니다:<head>일부 콘텐츠, 웹사이트 제목, 그리고 메인 네비게이션 메뉴입니다.
* footer.php웹 페이지의 푸터 영역을 정의합니다. 여기에는 저작권 정보, 스크립트 등이 포함됩니다.
* sidebar.php사이드바 영역을 정의합니다.
* functions.php이 파일은 매우 강력한 도구로, 테마에 기능을 추가하거나 메뉴와 사이드바를 등록하며, 다른 스크립트 및 스타일시트를 도입하는 데 사용됩니다.
* page.php정적 페이지를 렌더링하는 데 사용됩니다.
* single.php단일 블로그 글을 렌더링하는 데 사용됩니다.
* archive.php기사 분류, 태그 등 아카이브 페이지를 렌더링하는 데 사용됩니다.
제로에서 시작하여 주제의 핵심 템플릿을 구축하는 방법
이제, 주제의 핵심 구조를 만들어 보겠습니다. 먼저,wp-content/themes/디렉터리 내에 새로운 폴더를 만들고, 그 이름을 ‘새폴더’로 지정하세요.my-first-theme그런 다음, 위에서 언급한 내용을 그 안에 생성하세요.style.css그리고index.php파일.
추천 읽기 현대 웹사이트 구축의 핵심 가이드: 기획부터 온라인 서비스 개시까지의 전체 프로세스와 실용적인 팁。
헤더와 푸터 템플릿을 생성합니다.
웹 페이지의 구조를 재사용 가능한 구성 요소들로 분해하는 것은 효율적인 개발의 핵심입니다. 우리는 이를 위해…header.php이 파일은 HTML 문서의 시작 부분을 출력하는 역할을 합니다. 이 파일에서는 다음과 같은 내용을 사용해야 합니다:wp_head()이 함수는 매우 중요한 역할을 합니다. WordPress 코어, 플러그인, 그리고 사용자가 만든 테마가 여기에 필요한 코드(예: 스타일시트 링크, 메타 태그 등)를 삽입할 수 있도록 해줍니다.
<!DOCTYPE html>
<html no numeric noise key 1006>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body no numeric noise key 1003>
<header id="masthead">
<h1><a href="/ko/</?php echo esc_url( home_url( '/' ) ); ?>"></a></h1>
<p></p>
</header> 마찬가지로, 생성하세요.footer.php파일을 사용하여 페이지를 닫아주세요. 반드시 여기에서 해당 함수를 호출해야 합니다.wp_footer()후크(hook)는 코드 분석과 같은 많은 플러그인의 정상적인 작동에 매우 중요합니다.
<footer id="colophon">
<p>© . All Rights Reserved.</p>
</footer>
</body>
</html> 주 인덱스 파일을 조립합니다.
헤더와 푸터가 준비되었으니, 이제 당신의… (The header and footer are ready; now your…)index.php이렇게 하면 파일이 더 간결하고 효과적으로 표현됩니다. 사용해 보세요.get_header()그리고get_footer()템플릿 함수를 사용하여 그것들을 가져옵니다.
<main id="primary">
<?php
if ( have_posts() ) :
while ( have_posts() ) :
the_post();
?>
<article id="post-<?php the_ID(); ?>" no numeric noise key 1006>
<h2><a href="/ko/</?php the_permalink(); ?>"></a></h2>
<div class="entry-content">
</div>
</article>
<?php
endwhile;
else :
echo '<p>暂无文章。</p>';
endif;
?>
</main> 이 코드는 전형적인 “주循环”을 구성하고 있습니다. 이 주循环은 기사가 있는지 확인한 다음, 각 기사를 순회하여 제목(전문 내용으로 연결되는 링크)과 요약을 출력합니다.
기능 파일을 통해 테마를 개선하기
functions.php이곳은 “제어 센터”로, WordPress의 기본 동작을 안전하게 수정할 수 있는 곳입니다. 코어 파일을 직접 수정할 필요가 없죠.
등록하기: 네비게이션 메뉴 및 사이드바 설정
주제가 사용자 정의 메뉴를 지원하도록 하려면 다음을 사용해야 합니다:register_nav_menus()이 함수는 메뉴 항목의 위치를 등록하는 데 사용됩니다. 이는 보통…functions.php이 작업은 파일 내에 있는 한 함수 내에서 완료되며, 해당 함수는 다음과 같은 방식으로 작동합니다:after_setup_theme후크 실행(Hook execution).
추천 읽기 웹사이트 구축 입문부터 전문가 수준까지: 고성능 웹사이트를 만드는 완벽한 가이드。
function my_first_theme_setup() {
// 注册一个主导航菜单
register_nav_menus( array(
'primary' => __( 'Primary Menu', 'my-first-theme' ),
) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' ); 등록하시면 이용하실 수 있습니다.header.php중국에서 사용하세요.wp_nav_menu( array( 'theme_location' => 'primary' ) )이 메뉴를 표시하려면.
마찬가지로, 당신도 사용할 수 있습니다.register_sidebar()함수를 사용하여 작은 도구들이 표시되는 영역(사이드바)을 준비합니다.
스크립트와 스타일을 올바르게 가져오는 방법
절대로 템플릿 파일 내에서 CSS나 JavaScript 파일에 직접 하드링크를 걸어서는 안 됩니다. 올바른 방법은 해당 파일들을 템플릿 파일의 외부에서 참조하는 것입니다.wp_enqueue_scripts후크를 사용하세요.wp_enqueue_style()그리고wp_enqueue_script()함수를 사용하여 파일들을 순서대로 로드합니다. 이를 통해 의존 관계가 올바르게 처리되고, 파일이 중복으로 로드되는 것을 방지할 수 있습니다.
function my_first_theme_scripts() {
// 引入主题的主样式表
wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri(), array(), wp_get_theme()->get('Version') );
// 引入一个自定义JavaScript文件
wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), wp_get_theme()->get('Version'), true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' ); 요약
자신만의 첫 번째 WordPress 테마를 제작하는 것은 단계별로 진행되는 과정입니다. 환경을 설정하고 기본 구조를 이해한 후, 핵심 템플릿 파일을 직접 작성하며, 기능 파일을 통해 테마에 생동감을 불어넣습니다. 가장 중요한 것은 템플릿의 계층 구조를 이해하는 것입니다(즉, WordPress가 다양한 페이지에 어떤 템플릿 파일을 사용하는지 알아야 합니다) 그리고 이를 어떻게 활용할지 아는 것입니다.functions.php다양한 훅(hook)을 사용하여 기능을 확장할 수 있습니다. 입문자용 템플릿은 보기에 간단해 보일 수 있지만, 모든 핵심 개념을 포함하고 있습니다. 이러한 개념들을 숙지한 후에는 더 복잡한 템플릿들을 탐구할 수 있게 됩니다.single.php、page.php사용자 정의 기사 유형, 테마 커스터마이저 API 등의 고급 기능을 활용하여 기능이 풍부하고 디자인이 세련된 개인화된 테마를 만들 수 있습니다.
자주 묻는 질문
WordPress 테마를 제작하려면 PHP에 능통해야 하나요?
완전히 숙련된 수준에 이를 필요는 없지만, PHP의 기본 지식은 반드시 갖추어야 합니다. 변수, 배열, 조건문, 반복문, 함수의 기본 사용법을 이해해야 합니다. 왜냐하면 WordPress 템플릿 태그는 본질적으로 PHP 함수이기 때문입니다. 개발을 진행하면서 점차 더 많은 PHP 기술을 자연스럽게 습득하게 될 것입니다.
제 주제가 백엔드에서 표시되지 않는 이유는 무엇인가요?
가장 흔한 이유는style.css파일 헤더 주석에 포함된 메타정보의 형식이 올바르지 않거나 필수 항목이 누락되었습니다 (예:Theme Name). 해당 파일을 꼼꼼히 확인하여 주석의 구문이 올바르고 정보가 완전한지 확인해 주세요. 또한, ‘주제 폴더’는 반드시 바로 상위 폴더에 위치해야 합니다.wp-content/themes/디렉터리 내에는 중첩된 계층이 여러 개 존재할 수 없습니다.
함수.php와 플러그인의 차이점은 무엇입니까?
functions.php이 기능은 현재 활성화된 테마와 연동되어 있으며, 테마를 변경하면 해당 기능들도 일반적으로 사용할 수 없게 됩니다. 반면에 플러그인이 제공하는 기능은 테마와는 독립적이어서 어떤 테마를 사용하든 계속 활성화된 상태를 유지합니다. 일반적으로 웹사이트의 외관과 레이아웃과 밀접하게 관련된 기능들은 플러그인을 통해 구현됩니다.functions.php중; 반면에 일반적이고 독립적인 기능들(예: 연락처 양식, SEO 최적화 등)은 플러그인으로 만드는 것이 더 적합합니다.
내 테마를 다국어(국제화)로 지원하려면 어떻게 해야 하나요?
WordPress의 국제화(i18n) 기능을 사용하여 모든 사용자에게 표시되는 텍스트 문자열을 처리해야 합니다. 코드에서는 다음과 같이 해당 기능을 활용할 수 있습니다:__( ‘文本’, ‘my-first-theme’ )또는_e( ‘文本’, ‘my-first-theme’ )Please provide the text you would like to have translated.my-first-theme이것은 당신의 텍스트 도메인(Text Domain)입니다. 반드시 다른 요소들과 일치해야 합니다.style.css중에서 선언된 내용과 일치합니다. 그런 다음 Poedit와 같은 도구를 사용하여 생성할 수 있습니다..pot템플릿 파일을 번역하세요..po/.mo언어 파일.
다음 단계는 무엇인가요?
확장된 독서 및 실무 지식
다음은 이 도움말의 주제와 관련이 있으며 더 깊이 있게 읽기에 적합합니다. 현재 문제와 가장 가까운 문서부터 시작하여 점차 주변 주제로 확장하는 것이 우선순위를 정하는 것이 좋습니다.