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

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

พื้นฐานการพัฒนา WordPress Theme และการตั้งค่าแวดล้อม

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

ไฟล์หลักที่ประกอบเป็น Theme

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

/*
Theme Name: 我的自定义主题
Theme URI: https://example.com/my-theme
Author: 你的名字
Author URI: https://example.com
Description: 这是一个用于学习的自定义WordPress主题。
Version: 1.0
License: GPL v2 or later
Text Domain: my-custom-theme
*/

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

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

ตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่น

การพัฒนาธีมอย่างมีประสิทธิภาพไม่สามารถขาดสภาพแวดล้อมการพัฒนาท้องถิ่นได้ คุณสามารถใช้เครื่องมือเช่น XAMPP, MAMP, Local by Flywheel หรือ DevKinsta เพื่อตั้งค่าสภาพแวดล้อมการทำงาน WordPress ที่ประกอบด้วย Apache, MySQL และ PHP บนคอมพิวเตอร์ท้องถิ่นของคุณได้อย่างรวดเร็ว ซึ่งช่วยให้คุณสามารถเขียนโค้ด ทดสอบ และดีบั๊กได้โดยไม่ส่งผลกระทบต่อเว็บไซต์ออนไลน์

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

โครงสร้างไฟล์ธีมและลำดับชั้นของเทมเพลต

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

ไฟล์เทมเพลตทั่วไปและหน้าที่ของพวกเขา

นอกจากindex.phpต่อไปนี้คือไฟล์เทมเพลตสำคัญบางส่วน:
- header.php: กำหนดพื้นที่ส่วนหัวของเว็บไซต์ โดยทั่วไปจะประกอบด้วย<head>ส่วนและเมนูนำทางด้านบนของไซต์ การใช้get_header()การเรียกใช้ฟังก์ชัน
- footer.php: กำหนดพื้นที่ส่วนท้ายเว็บไซต์ ซึ่งประกอบด้วยข้อมูลลิขสิทธิ์ ฯลฯ ใช้get_footer()การเรียกใช้ฟังก์ชัน
- sidebar.php: กำหนดพื้นที่วิดเจ็ตด้านข้าง ใช้get_sidebar()การเรียกใช้ฟังก์ชัน
- single.php: ใช้สำหรับแสดงบทความบล็อกเดี่ยว
- page.php: สำหรับแสดงหน้าเดียวแบบคงที่
- front-page.phpfront-page.php: หากมีอยู่ จะถูกใช้เป็นหน้าแรกของเว็บไซต์ โดยมีลำดับความสำคัญสูงกว่าhome.php
- archive.php: ใช้สำหรับแสดงหน้าจัดเก็บหมวดหมู่บทความ แท็ก ผู้เขียน และอื่นๆ
- functions.php: นี่คือไฟล์ “ฟังก์ชัน” ของธีม ใช้สำหรับเพิ่มฟังก์ชัน ลงทะเบียนเมนู แถบด้านข้าง ฯลฯ เป็นเครื่องยนต์ของฟังก์ชันอันทรงพลังของธีม

ทำความเข้าใจลูปหลัก (The Loop)

ลูปหลักเป็นกลไกที่ WordPress ใช้ในการดึงและแสดงเนื้อหาจากฐานข้อมูล โดยปกติจะปรากฏในsingle.phppage.phpindex.phpเป็นต้น เทมเพลต โครงสร้างพื้นฐานมีดังนี้:

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
    <div class="entry-content">
        <?php the_content(); ?>
    </div>
<?php endwhile; else : ?>
    <p><?php _e( '抱歉,没有找到任何内容。', 'my-custom-theme' ); ?></p>
<?php endif; ?>

ในลูปนี้the_title()the_content()แท็กเทมเพลตใช้สำหรับแสดงข้อมูลเฉพาะของบทความปัจจุบัน

แนะนำให้อ่าน WordPress Theme Development Complete Guide: สร้างธีมแบบกำหนดเองตั้งแต่เริ่มต้นจนเสร็จสมบูรณ์

เพิ่มฟังก์ชันการทำงานของธีมผ่าน Functions.php

functions.phpไฟล์ functions.php เป็นตำแหน่งหลักสำหรับเพิ่มฟังก์ชันและคุณสมบัติให้กับธีมของคุณ ช่วยให้คุณสามารถขยายความสามารถของธีมได้โดยไม่ต้องแก้ไขไฟล์หลักของ WordPress

การลงทะเบียนฟังก์ชันและเมนูที่ธีมรองรับ

คุณสามารถเพิ่มการตั้งค่าและตัวควบคุมที่กำหนดเองได้ผ่านadd_theme_support()ฟังก์ชั่นเพื่อประกาศคุณสมบัติที่ธีมรองรับ เช่น ภาพเด่นของบทความ โลโก้ที่กำหนดเอง และรูปแบบบทความ

function my_theme_setup() {
    // 支持文章特色图像
    add_theme_support( 'post-thumbnails' );
    // 支持自定义Logo
    add_theme_support( 'custom-logo' );
    // 注册一个导航菜单位置
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-custom-theme' ),
    ) );
}
add_action( 'after_setup_theme', 'my_theme_setup' );

ลงทะเบียนแถบด้านข้างของวิดเจ็ต

พื้นที่วิดเจ็ตอนุญาตให้ผู้ดูแลระบบเพิ่มบล็อกเนื้อหาโดยการลากและวางผ่านแถบด้านหลัง คุณจำเป็นต้องfunctions.phpลงทะเบียนพื้นที่เหล่านี้ แล้วจึงเรียกใช้ในเทมเพลต

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%
function my_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; __( '主侧边栏', 'my-custom-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; __( '在此添加小工具。', 'my-custom-theme' ),
        'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>',
    ) );
}
add_action( 'widgets_init', 'my_theme_widgets_init' );

หลังจากลงทะเบียนแล้วsidebar.phpในไฟล์dynamic_sidebar( 'sidebar-1' )จะสามารถแสดงพื้นที่นี้ได้

การนำเข้าและรวมสไตล์ สคริปต์ และตัวปรับแต่ง

การพัฒนาเทมสมัยใหม่จำเป็นต้องจัดการ CSS และ JavaScript ในลักษณะที่เป็นโมดูลและบำรุงรักษาได้ รวมทั้งผสานรวมกับตัวปรับแต่ง WordPress ได้ดี เพื่อให้มีฟังก์ชันการแสดงตัวอย่างแบบเรียลไทม์

เพิ่ม CSS และ JavaScript อย่างปลอดภัย

วิธีที่ถูกต้องคือการจัดคิว (enqueue) ไฟล์สไตล์ชีตและสคริปต์ แทนที่จะเข้ารหัสโดยตรงในเทมเพลต<link><script>แท็ก วิธีนี้ช่วยให้แน่ใจว่าการพึ่งพาถูกต้องและหลีกเลี่ยงการโหลดซ้ำ

แนะนำให้อ่าน การออกแบบและการพัฒนาอย่างมีประสิทธิภาพ: คู่มือฉบับสมบูรณ์ในการสร้างธีม WordPress ระดับมืออาชีพ

function my_theme_scripts() {
    // 引入主题的主样式表
    wp_enqueue_style( 'my-theme-style', get_stylesheet_uri() );
    // 引入自定义CSS文件
    wp_enqueue_style( 'my-theme-custom-style', get_template_directory_uri() . '/assets/css/custom.css', array(), '1.0' );
    // 引入导航菜单的JavaScript文件,并依赖jQuery
    wp_enqueue_script( 'my-theme-navigation', get_template_directory_uri() . '/assets/js/navigation.js', array( 'jquery' ), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_theme_scripts' );

รวมตัวปรับแต่ง WordPress

ตัวปรับแต่งช่วยให้ผู้ใช้สามารถดูตัวอย่างและแก้ไขการตั้งค่าธีมได้แบบเรียลไทม์ คุณสามารถใช้WP_Customize_Managerเพิ่มการตั้งค่าและตัวควบคุมให้กับวัตถุ

function my_theme_customize_register( $wp_customize ) {
    // 添加一个“版权信息”板块
    $wp_customize->add_section( 'footer_settings', array(
        'title'    => __( '页脚设置', 'my-custom-theme' ),
        'priority' => 160,
    ) );
    // 在板块内添加一个设置项
    $wp_customize->add_setting( 'footer_copyright_text', array(
        'default'           => __( '© 2026 我的公司 版权所有。', 'my-custom-theme' ),
        'sanitize_callback' => 'sanitize_text_field',
        'transport'         => 'postMessage', // 支持实时预览
    ) );
    // 为该设置添加一个文本输入控件
    $wp_customize->add_control( 'footer_copyright_text', array(
        'label'    => __( '页脚版权文本', 'my-custom-theme' ),
        'section'  => 'footer_settings',
        'type'     => 'text',
    ) );
}
add_action( 'customize_register', 'my_theme_customize_register' );

footer.phpคุณสามารถใช้ในget_theme_mod( 'footer_copyright_text' )เพื่อแสดงข้อความลิขสิทธิ์ที่ปรับแต่งได้นี้

โฮสติ้งแบบแชร์ของ InterServer
共享主机每月 $2.50 USD , 首月 $0.1 USD 优惠码 tryinterserver, 461个云应用脚本,一键安装。

สรุป

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

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

การพัฒนา WordPress Theme จำเป็นต้องเรียน PHP ไหม?

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

วิธีทำให้ธีมของฉันรองรับการแปลหลายภาษา

เพื่อให้ธีมรองรับหลายภาษา คุณจำเป็นต้องมีการเตรียมการระหว่างประเทศ (i18n) ในระหว่างกระบวนการพัฒนา ประการแรก ในstyle.cssและฟังก์ชันแปลทั้งหมดเช่น__()_e()ฟังก์ชันแปลภาษา ให้ตั้งค่าโดเมนข้อความ (Text Domain) อย่างถูกต้อง จากนั้น ใช้เครื่องมือเช่น Poedit เพื่อสแกนไฟล์ธีมและสร้าง.potไฟล์เทมเพลต และสร้างไฟล์แปลสำหรับภาษาที่เกี่ยวข้อง (เช่นzh_CN.po.moไฟล์แปลสำหรับ ) วางไฟล์แปลไว้ในธีม/languages/ไดเรกทอรีแล้วก็เสร็จ

ธีมลูกและธีมหลักแตกต่างกันอย่างไร และควรใช้เมื่อใด

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

ธีมของฉันทำงานปกติในเครื่อง แต่เมื่ออัปโหลดไปยังเซิร์ฟเวอร์แล้วสไตล์ผิดปกติ ควรทำอย่างไร?

โดยทั่วไปแล้วปัญหานี้มักเกิดจากเส้นทางไฟล์ผิดพลาดหรือปัญหาการกำหนดค่าเซิร์ฟเวอร์ ก่อนอื่น ตรวจสอบfunctions.phpเมื่อนำเข้าไฟล์ CSS และ JS ว่าฟังก์ชันget_template_directory_uri()ที่ใช้ถูกต้องหรือไม่ ประการที่สอง ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ได้เปิดใช้งานการเขียน URL ใหม่ (ฟังก์ชันลิงก์ถาวร) ตรวจสอบ.htaccessสิทธิ์และเนื้อหาของไฟล์ (เซิร์ฟเวอร์ Apache) สุดท้าย ในเครื่องมือนักพัฒนาของเบราว์เซอร์ ให้ตรวจสอบแผงเครือข่ายเพื่อยืนยันว่าไฟล์ CSS และ JS โหลดสำเร็จหรือไม่ (ส่งกลับข้อผิดพลาด 404) และตรวจสอบคอนโซลว่ามีข้อผิดพลาด JavaScript หรือไม่