คู่มือการพัฒนาและปรับแต่ง WordPress Theme: ตั้งแต่เริ่มต้นสู่การปฏิบัติขั้นสูง

อ่าน 3 นาที
2026-03-18
2026-06-03
2,285
I earn commissions when you shop through the links below, at no additional cost to you.

ทำความเข้าใจโครงสร้างพื้นฐานของธีม WordPress

ธีม WordPress ไม่ใช่แค่สไตล์ชีตที่ควบคุมรูปลักษณ์ของเว็บไซต์ แต่เป็นชุดของไฟล์ที่ทำงานร่วมกันตามมาตรฐานเฉพาะ ซึ่งรวมกันบอก WordPress ว่าจะแสดงเนื้อหาของเว็บไซต์อย่างไร ธีมที่ง่ายที่สุดประกอบด้วยเพียงสองไฟล์:style.cssindex.phpแต่ธีมที่มีประสิทธิภาพอาจมีไฟล์เทมเพลตหลายสิบไฟล์ ไฟล์ฟังก์ชัน และไฟล์แอสเซ็ต

ไฟล์หลักและบทบาทของพวกเขา

ทุกธีม WordPress ต้องมี style.css ไฟล์ ไฟล์นี้ไม่เพียงแต่เป็นแกนหลักในการกำหนดรูปแบบของเว็บไซต์เท่านั้น แต่ส่วนความคิดเห็นที่ส่วนหัวของไฟล์ยังรวมถึงข้อมูลเมตาของธีม เช่น ชื่อธีม ผู้เขียน คำอธิบาย และเวอร์ชัน นี่เป็นกุญแจสำคัญที่ WordPress ใช้ในการระบุธีมที่ถูกต้อง

ไฟล์พื้นฐานอีกไฟล์หนึ่งคือ index.phpซึ่งเป็นไฟล์เทมเพลตเริ่มต้นของธีม เมื่อ WordPress ไม่สามารถหาไฟล์เทมเพลตที่เฉพาะเจาะจงมากขึ้นสำหรับคำขอปัจจุบันได้ มันจะย้อนกลับไปใช้ index.php

แนะนำให้อ่าน คู่มือขั้นสูงสุดในการพัฒนา WordPress Theme: สร้างเว็บไซต์แบบกำหนดเองตั้งแต่เริ่มต้นจนถึงระดับเชี่ยวชาญ

โครงสร้างลำดับชั้นของเทมเพลต

ระบบธีมของ WordPress ปฏิบัติตามกฎ “ลำดับชั้นของเทมเพลต” ที่มีประสิทธิภาพ ซึ่งหมายความว่าเมื่อเข้าถึงหน้าเว็บเฉพาะเจาะจง WordPress จะค้นหาไฟล์เทมเพลตที่ตรงกันมากที่สุดตามลำดับที่กำหนดไว้ล่วงหน้า ตัวอย่างเช่น เมื่อเข้าถึงบทความบล็อก WordPress จะให้ความสำคัญกับการค้นหา single-post.phpหากไม่มีอยู่ ให้ค้นหา single.phpและสุดท้ายจึงใช้ index.phpการเข้าใจโครงสร้างระดับนี้เป็นพื้นฐานสำหรับการปรับแต่งขั้นสูง

UltaHost WordPress โฮสติ้ง
การรับประกันคืนเงินภายใน 30 วัน, แบนด์วิธและฐานข้อมูลไม่จำกัด, การป้องกัน DDoS ฟรี, ซื้อ 3 ปีลดราคา 50%

สร้างธีมพื้นฐานแรกของคุณ

การสร้างธีมตั้งแต่เริ่มต้นเป็นวิธีที่ดีที่สุดในการเข้าใจวิธีการทำงานของมัน ขั้นแรกเราสร้างโฟลเดอร์ใหม่ใน wp-content/themes ไดเรกทอรีของ WordPress ตัวอย่างเช่นตั้งชื่อว่า “my-first-theme”

เขียนข้อมูลส่วนหัวของสไตล์ชีต

ภายในโฟลเดอร์นี้ ให้สร้าง 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: GNU General Public License v2 or later
Text Domain: my-first-theme
*/

สร้างเทมเพลตดัชนีพื้นฐาน

จากนั้น สร้าง index.php ไฟล์ นี่คือเทมเพลตพื้นฐานที่สุดที่ใช้ฟังก์ชันหลักของ WordPress ในการดึงและแสดงชื่อเว็บไซต์และลูปโพสต์

<!DOCTYPE html>
<html no numeric noise key 1014>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <?php wp_head(); ?>
</head>
<body no numeric noise key 1011>
    <header>
        <h1><a href="/th/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p><?php bloginfo( 'description' ); ?></p>
    </header>
    <main>
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
            <article>
                <h2><a href="/th/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
                <div><?php the_content(); ?></div>
            </article>
        <?php endwhile; else : ?>
            <p><?php esc_html_e( 'Sorry, no posts matched your criteria.', 'my-first-theme' ); ?></p>
        <?php endif; ?>
    </main>
    <?php wp_footer(); ?>
</body>
</html>

ขณะนี้ คุณสามารถเห็นและเปิดใช้งานธีมพื้นฐานนี้ในส่วน “รูปลักษณ์ > ธีม” ในแอดมินของ WordPress ได้แล้ว

แนะนำให้อ่าน คู่มือการพัฒนา WordPress Theme แบบสมบูรณ์: สร้างธีมที่กำหนดเองตั้งแต่เริ่มต้นจนสำเร็จ

ใช้ไฟล์เทมเพลตและฮุคสำหรับการปรับแต่ง

เพื่อให้ธีมมีคุณสมบัติหลากหลายและโครงสร้างชัดเจน คุณจำเป็นต้องใช้ไฟล์เทมเพลตและระบบฮุคของ WordPress อย่างมีประสิทธิภาพ

แยกเทมเพลตออกเป็นส่วนประกอบแบบโมดูลาร์

ธีมระดับมืออาชีพจะไม่วางโค้ดทั้งหมดไว้ใน index.php พวกเราใช้ฟังก์ชันเช่น get_header()get_footer()get_sidebar() เพื่อแยกเทมเพลต ขั้นแรกให้ย้ายโครงสร้าง HTML ส่วนหัวและส่วนท้ายจาก index.php ไปยังที่สร้างใหม่ header.phpfooter.php ไฟล์ แล้วแก้ไข index.php ดังนี้:

<?php get_header(); ?>
<main>
    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <article>
            <h2><a href="/th/</?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
            <div><?php the_content(); ?></div>
        </article>
    <?php endwhile; else : ?>
        <p><?php esc_html_e( 'Sorry, no posts matched your criteria.', 'my-first-theme' ); ?></p>
    <?php endif; ?>
</main>

เพิ่มฟังก์ชันผ่านไฟล์ฟังก์ชัน

functions.php ไฟล์เป็น “สมอง” ของธีม ใช้สำหรับเพิ่มฟีเจอร์พิเศษ ลงทะเบียนเมนู พื้นที่วิดเจ็ต และเรียกใช้สไตล์ชีตและสคริปต์ สร้างมันขึ้นมา และเพิ่มโค้ดพื้นฐานต่อไปนี้เพื่อลงทะเบียนเมนูนำทาง:

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%
<?php
function my_first_theme_setup() {
    // 注册一个导航菜单位置
    register_nav_menus( array(
        'primary' => __( 'Primary Menu', 'my-first-theme' ),
    ) );
    // 添加文章缩略图支持
    add_theme_support( 'post-thumbnails' );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

// 排入样式表和脚本
function my_first_theme_scripts() {
    wp_enqueue_style( 'main-style', get_stylesheet_uri() );
    wp_enqueue_script( 'main-js', get_template_directory_uri() . '/js/main.js', array(), null, true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );
?>

จากนั้น คุณสามารถ header.php ใช้ฟังก์ชัน wp_nav_menu() ฟังก์ชันเพื่อแสดงเมนูนี้

การออกแบบที่ตอบสนองและการพัฒนา Child Theme

เว็บไซต์สมัยใหม่ต้องปรับให้เข้ากับหน้าจออุปกรณ์ทุกประเภท ในขณะเดียวกัน เพื่ออัปเดต Parent Theme อย่างปลอดภัยโดยไม่สูญเสียการปรับแต่ง Child Theme จึงเป็นทักษะที่จำเป็น

การใช้หลักการออกแบบที่ตอบสนอง

style.css โดยใช้ CSS Media Queries เพื่อสร้างเลย์เอาต์ที่ตอบสนอง ตัวอย่างเช่น การตั้งค่ากฎสไตล์ที่แตกต่างกันสำหรับอุปกรณ์แท็บเล็ตและโทรศัพท์มือถือ:

แนะนำให้อ่าน คู่มือการพัฒนา WordPress Theme ฉบับสมบูรณ์: สร้างเว็บไซต์ที่กำหนดเองตั้งแต่เริ่มต้น

/* 基础样式 */
.container { width: 100%; max-width: 1200px; margin: 0 auto; }
/* 平板设备 (宽度小于 768px) */
@media (max-width: 768px) {
    .container { padding: 0 15px; }
    .sidebar { display: none; }
}
/* 手机设备 (宽度小于 480px) */
@media (max-width: 480px) {
    h1 { font-size: 1.5em; }
}

สร้างธีมลูกเพื่อแทนที่ธีมหลัก

ธีมลูกอนุญาตให้คุณปรับเปลี่ยนหรือขยายฟังก์ชันการทำงานของธีมอื่น (ธีมหลัก) สร้างโฟลเดอร์ใหม่ เช่น “my-first-theme-child” และภายในนั้นสร้าง style.cssซึ่งหัวข้อข้อมูลต้องมีบรรทัด “Template” เพื่อระบุชื่อไดเรกทอรีของธีมหลัก:

/*
Theme Name: My First Theme Child
Template: my-first-theme
Version: 1.0
*/

จากนั้น ในธีมลูก functions.php คุณต้องจัดเรียงสไตล์ชีตของธีมหลักและธีมลูกใน:

โฮสติ้งแบบแชร์ของ InterServer
共享主机每月 $2.50 USD , 首月 $0.1 USD 优惠码 tryinterserver, 461个云应用脚本,一键安装。
<?php
add_action( 'wp_enqueue_scripts', 'my_child_theme_scripts' );
function my_child_theme_scripts() {
    // 排入父主题样式表
    wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
    // 排入子主题样式表,位于父主题样式之后
    wp_enqueue_style( 'child-style', get_stylesheet_uri(), array( 'parent-style' ) );
}
?>

หลังจากนั้น คุณสามารถแทนที่ไฟล์เทมเพลตที่ตรงกันในธีมหลักได้โดยการสร้างไฟล์เทมเพลตชื่อเดียวกันในธีมลูก (เช่น header.php) หรือเพิ่มกฎ CSS ใหม่เพื่อเปลี่ยนรูปลักษณ์

สรุป

การพัฒนา WordPress Theme เป็นกระบวนการที่เริ่มจากการทำความเข้าใจโครงสร้างหลัก ฝึกฝนการสร้างธีมพื้นฐานทีละขั้นตอน และนำไปสู่การใช้คุณสมบัติขั้นสูง (เช่น ลำดับชั้นของเทมเพลต, ฮุค, การออกแบบที่ตอบสนองต่ออุปกรณ์ และธีมลูก) เพื่อปรับแต่งอย่างลึกซึ้ง โดยการปฏิบัติตามโครงสร้างไฟล์และแนวปฏิบัติในการพัฒนาที่เป็นมาตรฐาน คุณสามารถสร้างธีมที่มีประสิทธิภาพสูง บำรุงรักษาได้ง่าย และมีรูปลักษณ์เป็นมืออาชีพได้ สิ่งสำคัญคือการลงมือปฏิบัติจริง เริ่มจากการแก้ไข index.phpstyle.css อย่างง่าย และค่อยๆ สร้างความเข้าใจอย่างครอบคลุมในระบบธีมของ WordPress

คำถามที่พบบ่อย (FAQ)

ธีม WordPress อย่างน้อยต้องใช้ไฟล์กี่ไฟล์?

ธีม WordPress อย่างน้อยต้องใช้สองไฟล์:style.cssindex.php

โดยเฉพาะอย่างยิ่งstyle.css ส่วนหัวของความคิดเห็นต้องมีข้อมูลเมตา (metadata) ของธีมที่ถูกต้อง ซึ่งเป็นสิ่งสำคัญที่ WordPress ใช้ในการระบุและนำธีมไปใช้ index.php ซึ่งเป็นไฟล์เทมเพลตเริ่มต้น มีหน้าที่จัดการคำขอที่ไม่มีเทมเพลตที่เฉพาะเจาะจงตรงกัน

วิธีการปรับแต่งการแสดงผลของหน้าโพสต์เดี่ยว?

ในการปรับแต่งการแสดงผลของโพสต์เดี่ยว คุณต้องสร้างไฟล์ตามลำดับชั้นเทมเพลตของ WordPress single.php หรือเพื่อการควบคุมที่แม่นยำยิ่งขึ้น ให้สร้างเทมเพลตสำหรับประเภทโพสต์เฉพาะ เช่น single-post.php

ในไฟล์นี้ คุณสามารถจัดเรียงเลย์เอาต์ของหัวข้อโพสต์ เนื้อหา เมตาดาต้า (เช่น ผู้เขียน เวลาที่เผยแพร่ หมวดหมู่) และพื้นที่ความคิดเห็นได้อย่างอิสระ คุณสามารถใช้แท็กเทมเพลตที่ WordPress จัดเตรียมไว้ เช่น the_title()the_content()the_author() รอให้เนื้อหาถูกแสดงผล

ไฟล์ functions.php มีหน้าที่อะไร?

functions.php เป็นไฟล์ฟังก์ชันหลักของธีม ซึ่งทำหน้าที่คล้ายกับปลั๊กอิน ใช้เพื่อเพิ่มฟังก์ชัน การเชื่อมโยง (hooks) และตัวกรองให้กับธีม

บทบาทหลักของมันรวมถึง: การเริ่มต้นฟังก์ชันของธีม (เช่น การลงทะเบียนเมนู พื้นที่วิดเจ็ต การเพิ่มการรองรับภาพเด่น) การจัดเรียงไฟล์สไตล์ชีต CSS และสคริปต์ JavaScript การกำหนดรหัสสั่ง (shortcodes) แบบกำหนดเอง การปรับเปลี่ยนพฤติกรรมเริ่มต้นของ WordPress (ผ่านการเชื่อมโยง) และการตั้งค่าตัวเลือกการกำหนดค่าสำหรับธีมโดยเฉพาะ มันจะถูกเรียกใช้โดย WordPress อัตโนมัติเมื่อธีมถูกโหลด

การใช้ธีมลูก (child theme) มีประโยชน์อย่างไร?

ประโยชน์สูงสุดของการใช้ธีมลูกคือการอนุญาตให้คุณปรับเปลี่ยนและกำหนดค่าเองธีมหลักได้อย่างปลอดภัย โดยไม่ต้องแก้ไขไฟล์ต้นฉบับของธีมหลักโดยตรง

นั่นหมายความว่าเมื่อธีมหลักมีการอัปเดตความปลอดภัยหรืออัปเดตฟีเจอร์ คุณสามารถอัปเดตธีมหลักได้โดยตรง และการปรับแต่งทั้งหมดที่คุณทำผ่านธีมลูก (เช่น สไตล์ ไฟล์เทมเพลต การปรับปรุงฟังก์ชันการทำงาน) จะยังคงอยู่และไม่ถูกเขียนทับ ซึ่งช่วยเพิ่มประสิทธิภาพและความปลอดภัยในการบำรุงรักษาเว็บไซต์อย่างมาก และถือเป็นแนวทางปฏิบัติที่ดีที่สุดในการพัฒนา WordPress