-
목차
🧠 functions.php란 무엇인가?
functions.php는 워드프레스 테마 디렉터리에 포함된 PHP 파일로,
해당 테마가 작동하는 동안 실행되는 사용자 정의 함수, 후크(Hook), 커스텀 기능 등을 등록하는 핵심 파일입니다.php복사편집// 위치 예시 /wp-content/themes/your-theme/functions.php핵심은: 테마 수준에서 사이트의 기능을 확장하고 제어하는 관문이라는 점입니다.
⚙️ functions.php에서 가능한 일들
구분예시 기능테마 지원 기능 추가 썸네일, 내비게이션 메뉴, 커스텀 로고 등 활성화 커스텀 후크 add_action, add_filter로 기능 추가/변경 자바스크립트·CSS 로드 wp_enqueue_script, wp_enqueue_style 사용자 정의 역할·메뉴·위젯 등록 register_nav_menus, register_sidebar 등 기타 관리자 영역 제어, 로그인 화면 커스터마이징 등
🧩 기본 구조 예시
php복사편집<?php // 테마 지원 기능 등록 add_theme_support('post-thumbnails'); add_theme_support('title-tag'); // 커스텀 메뉴 등록 register_nav_menus(array( 'main-menu' => __('Main Menu', 'your-theme'), )); // CSS, JS 등록 function my_theme_enqueue_assets() { wp_enqueue_style('main-style', get_stylesheet_uri()); wp_enqueue_script('main-js', get_template_directory_uri() . '/assets/main.js', array(), null, true); } add_action('wp_enqueue_scripts', 'my_theme_enqueue_assets'); ?>
🪝 Hook 시스템 제대로 쓰기 – add_action vs add_filter
워드프레스의 핵심은 Hook 기반 이벤트 시스템입니다.
▶️ add_action
- 새로운 동작을 삽입
- 예: HTML 출력, 자바스크립트 삽입, 기능 호출 등
php복사편집function my_footer_code() { echo '<p>© 2025 MySite</p>'; } add_action('wp_footer', 'my_footer_code');🧪 add_filter
- 기존 값 또는 동작을 수정
- 예: 제목, 콘텐츠, 업로드 제한값, excerpt 등
php복사편집function my_custom_title($title) { return $title . ' | 워드프레스 전문가 블로그'; } add_filter('the_title', 'my_custom_title');
🧱 실무 예시: 테마 커스터마이징
✅ 썸네일 크기 설정
php복사편집add_theme_support('post-thumbnails'); add_image_size('custom-thumb', 600, 400, true);✅ excerpt 길이 조정
php복사편집function custom_excerpt_length($length) { return 30; } add_filter('excerpt_length', 'custom_excerpt_length');✅ 관리자 바 숨기기
php복사편집add_filter('show_admin_bar', '__return_false');
⚠️ 주의사항
항목설명테마 교체 시 초기화 functions.php는 테마 종속 → 커스텀 기능이 사라질 수 있음 → 기능성은 플러그인화 고려 코드 오류는 사이트 전체 오류로 연결 문법 오류는 ‘화이트스크린(WSOD)’ 발생 위험 → 반드시 FTP 또는 관리 패널 접근 가능 상태에서 작업 사이트 전체 영향 잘못된 후크, 루프, 쿼리 변경은 성능 저하/버그 원인
💡 실전 팁
- 항상 child theme 사용 – 부모 테마 업데이트 시 커스터마이징 유지
- 자주 쓰는 코드는 사이트 전용 유틸 플러그인으로 분리 가능
- 변경 전 FTP 백업 또는 코드 복사 필수
- 코드 정리는 inc/ 폴더 만들어 분할 관리 추천
(ex: inc/scripts.php, inc/hooks.php 등 불러오기)
✅ functions.php 마스터 체크리스트
항목완료 여부기본 테마 기능 활성화 (썸네일, 타이틀, 메뉴) ✅ / ❌ CSS/JS 파일 올바르게 로드 ✅ / ❌ 적절한 후크(add_action/add_filter) 사용 ✅ / ❌ 기능별 코드 분할 관리 구조 설계 ✅ / ❌ 커스터마이징 적용 후 기능 테스트 완료 ✅ / ❌ '워드프레스' 카테고리의 다른 글
🧠 왜 DB 구조를 이해해야 하는가? (2) 2025.04.25 🔄 AJAX가 필요한 이유 (1) 2025.04.25 🧠 왜 커스텀 포스트 타입(CPT)이 필요한가? (1) 2025.04.25 🔗 워드프레스 REST API란? (0) 2025.04.24 📱 워드프레스를 앱처럼 운영하는 3단계 전략 (2) 2025.04.23 💬 워드프레스와 챗봇 연동 전략 (1) 2025.04.22 🎨 워드프레스 테마 변경 시 유의사항 (2) 2025.04.22 🤖 워드프레스 자동화 운영 전략 (0) 2025.04.22