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

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

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

การเตรียมการ: การตั้งค่าสภาพแวดล้อมการพัฒนาในเครื่อง

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

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

ประการแรก เราจำเป็นต้องจำลองสภาพแวดล้อมของเซิร์ฟเวอร์เว็บบนคอมพิวเตอร์ในเครื่อง แนะนำให้ใช้ชุดซอฟต์แวร์ เช่น Local(由WP Engineผลิตร่วม)、XAMPPMAMP。เครื่องมือเหล่านี้ติดตั้งด้วยคลิกเดียวApacheMySQLPHPเช่นLocalเป็นตัวอย่าง มันรวมWordPressติดตั้งด้วยคลิกเดียว、SSLฟังก์ชันการจับใบรับรองและอีเมล เป็นมิตรกับนักพัฒนาอย่างมาก

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

หลังจากติดตั้งเสร็จแล้ว ให้สร้างWordPressเว็บไซต์ใหม่ โปรดตรวจสอบให้แน่ใจว่าPHPเวอร์ชันต้องเป็น 7.4 หรือสูงกว่า พร้อมทั้งจำชื่อฐานข้อมูล ชื่อผู้ใช้ และรหัสผ่าน ซึ่งจะใช้ในการตั้งค่าต่อไป

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

การแก้ไขโค้ดและการควบคุมเวอร์ชัน

ถ้าจะทำงานให้ดี ต้องเตรียมเครื่องมือให้พร้อม ขอแนะนำให้ใช้โปรแกรมแก้ไขโค้ดที่มีประสิทธิภาพ เช่น Visual Studio CodePhpStormSublime Textซึ่งมีคุณสมบัติเช่นการเน้นไวยากรณ์ คำแนะนำโค้ด การเติมข้อความอัตโนมัติ และระบบปลั๊กอินที่หลากหลาย

ในเวลาเดียวกัน เริ่มใช้ระบบควบคุมเวอร์ชันทันที โดยแนะนำให้เลือกGitโดยการเริ่มต้นที่ไดเรกทอรีรากของโปรเจกต์เป็นGitและใช้ไฟล์.gitignoreเพื่อแยกไฟล์ที่ไม่จำเป็น (เช่นสื่อที่อัปโหลดและแคช) คุณสามารถจัดการการเปลี่ยนแปลงโค้ดได้อย่างปลอดภัย สะดวกในการย้อนกลับและทำงานร่วมกัน โฮสต์ที่เก็บข้อมูลไปยังGitHubGitLabBitbucketเป็นมาตรฐานปฏิบัติในอุตสาหกรรม

เข้าใจโครงสร้างไฟล์และเทมเพลตหลักของธีม

โครงสร้างมาตรฐานWordPressธีมคือโฟลเดอร์ที่มีไฟล์เฉพาะ การเข้าใจบทบาทของแต่ละไฟล์เป็นรากฐานในการสร้างธีม

ไฟล์ธีมที่ต้องมี

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

แนะนำให้อ่าน คู่มือฉบับสมบูรณ์ในการสร้างเว็บไซต์: กระบวนการมืออาชีพตั้งแต่เริ่มต้นจนถึงการออนไลน์และการวิเคราะห์เทคโนโลยีหลัก

/*
Theme Name: 我的第一个主题
Theme URI: https://example.com/my-first-theme
Author: 你的名字
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ใช้ระบบลำดับชั้นของเทมเพลตเพื่อตัดสินใจว่าจะใช้เทมเพลตใดสำหรับเนื้อหาประเภทต่าง ๆPHPไฟล์เทมเพลต นี่คือแนวคิดหลักในการพัฒนาเทมเพลต

ขั้นตอนทั่วไปในการเรียกใช้เทมเพลตมีดังนี้
1. 访问单篇文章:优先使用single-post.phpหากไม่มีให้ใช้single.phpและสุดท้ายคือsingular.php
2. 访问页面:优先使用page-{slug}.phppage-{id}.phpหากไม่มีให้ใช้page.phpและสุดท้ายคือsingular.php
3. 访问文章归档页:优先使用archive-{post-type}.phpหากไม่มีให้ใช้archive.phpและสุดท้ายคือindex.php

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%

แม่แบบสำคัญอื่นๆ ได้แก่:header.php(ส่วนหัว)footer.php(ส่วนท้าย)sidebar.php(แถบด้านข้าง)functions.php(ไฟล์ฟังก์ชันการทำงาน) และfront-page.php(หน้าแรกแบบคงที่) การเข้าใจว่าไฟล์เหล่านี้ถูกรวมเข้าด้วยกันผ่านฟังก์ชันต่างๆ เช่นget_header()get_footer()เป็นกุญแจสำคัญในการสร้างหน้าเว็บ

การสร้างโครงร่างธีมตั้งแต่เริ่มต้น

ตอนนี้ มาลองสร้างโครงร่างธีมชื่อ “MyFirstTheme” กันเถอะ การฝึกฝนทำให้เกิดความชำนาญ

สร้างไฟล์เทมเพลตพื้นฐาน

ในของคุณWordPressติดตั้งไดเรกทอรีwp-content/themes/ภายใต้ ให้สร้างไฟล์ใหม่ชื่อmy-first-themeโฟลเดอร์ หลังจากนั้นให้สร้างไฟล์ต่อไปนี้:

แนะนำให้อ่าน กระบวนการสร้างเว็บไซต์สมัยใหม่แบบครบวงจร: เทคโนโลยีและแนวปฏิบัติหลักตั้งแต่การออกแบบโครงสร้างไปจนถึงการปรับใช้และการบำรุงรักษา

1. style.css: เขียนข้อมูลส่วนหัวตามที่กล่าวไว้ข้างต้น
2. index.php: นี่คือเทมเพลตพื้นฐานที่สุด

index.phpในขั้นแรก เราจะสร้างโครงสร้างที่ง่ายที่สุดHTML5โครงสร้าง และนำเข้าเฮดเดอร์และฟุตเตอร์ด้วยตนเอง

โฮสติ้งแบบแชร์ของ InterServer
共享主机每月 $2.50 USD , 首月 $0.1 USD 优惠码 tryinterserver, 461个云应用脚本,一键安装。
<!DOCTYPE html>
<html no numeric noise key 1005>
<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 1002>
    <header>
        <h1>ธีมที่กำหนดเองของฉัน</h1>
    </header>
    <main>
        &lt;?php
        if ( have_posts() ) :
            while ( have_posts() ) : the_post();
                the_title( &#039;<h2>', '</h2>' );
                the_content();
            endwhile;
        else :
            _e( '抱歉,没有找到您要的内容。', 'my-first-theme' );
        endif;
        ?&gt;
    </main>
    <footer>
        <p>© เว็บไซต์ของฉัน</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

ข้อควรระวังwp_head()wp_footer()สองฮุคนี้ ซึ่งอนุญาตให้ปลั๊กอินและธีมแทรกโค้ดในตำแหน่งที่เกี่ยวข้อง ต้องถูกเรียกใช้

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

โค้ดด้านบนเขียนทุกอย่างไว้ในไฟล์เดียว ซึ่งจะทำให้ดูแลรักษายากในไม่ช้า ต่อไป เราจะทำการแยกส่วนแบบโมดูลาร์

สร้างheader.phpย้ายส่วนของจนถึงก่อนเปิดแท็กย้ายโค้ดทั้งหมดก่อนแท็ก:

<!DOCTYPE html>
<html no numeric noise key 1004>
<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 1001>
<header>
    <h1><a href="/th/</?php echo esc_url( home_url( '/' ) ); ?>">ธีมที่กำหนดเองของฉัน</a></h1>
</header>
<main>

สร้างfooter.phpไปปิดย้ายโค้ดทั้งหมดหลังแท็ก:

</main>
<footer>
    <p>©  我的网站</p>
</footer>
<?php wp_footer(); ?>
</body>
</html>

จากนั้นทำให้คุณกระชับindex.phpไฟล์:

&lt;?php
if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        the_title( &#039;<h2>', '</h2>' );
        the_content();
    endwhile;
else :
    _e( '抱歉,没有找到您要的内容。', 'my-first-theme' );
endif;
?&gt;

ตอนนี้ โครงสร้างธีมของคุณมีความชัดเจนและจัดการง่าย คุณสามารถWordPressดูและเปิดใช้งานได้ใน “รูปลักษณ์” -> “ธีม” ในแอดมิน

การผสานฟังก์ชันหลักกับตัวเลือกที่ปรับแต่งเอง

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

ใช้ functions.php เพื่อลงทะเบียนการสนับสนุนธีม

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

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

<?php
function my_first_theme_setup() {
    // 让WordPress管理文档标题
    add_theme_support( 'title-tag' );
    // 启用文章和评论的RSS feed链接
    add_theme_support( 'automatic-feed-links' );
    // 启用文章特色图像
    add_theme_support( 'post-thumbnails' );
    // 启用自定义Logo
    add_theme_support( 'custom-logo', array(
        'height'      => 100,
        'width'       => 400,
        'flex-height' => true,
        'flex-width'  => true,
    ) );
    // 启用HTML5标记支持
    add_theme_support( 'html5', array( 'search-form', 'comment-form', 'comment-list', 'gallery', 'caption' ) );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

วิธีที่ถูกต้องในการนำเข้า stylesheet และ script

ห้ามใช้การเข้ารหัสแบบ hard-coded ในไฟล์เทมเพลต แท็กเพื่อนำเข้าแหล่งข้อมูลแบบคงที่ วิธีที่ถูกต้องคือผ่าน wp_enqueue_style()wp_enqueue_script() ฟังก์ชั่น ซึ่งช่วยให้มั่นใจในการจัดการการอ้างอิง การควบคุมเวอร์ชัน และหลีกเลี่ยงการโหลดซ้ำ

functions.phpเพิ่มใน:

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' );

เพิ่มเมนูนำทาง

เมนูนำทางเป็นโครงกระดูกของเว็บไซต์ ขั้นแรก ใช้ register_nav_menus() ตำแหน่งเมนูการลงทะเบียนฟังก์ชัน:

function my_first_theme_menus() {
    register_nav_menus(
        array(
            'primary' => __( '主导航菜单', 'my-first-theme' ),
            'footer'  => __( '页脚菜单', 'my-first-theme' ),
        )
    );
}
add_action( 'init', 'my_first_theme_menus' );

จากนั้น ในheader.phpภายในพื้นที่ เรียกเมนูนี้:

<?php
wp_nav_menu(
    array(
        'theme_location' => 'primary',
        'menu_id'        => 'primary-menu',
        'container'      => 'nav',
        'container_class'=> 'primary-navigation',
    )
);
?>

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

สรุป

ตั้งแต่การตั้งค่า environment ในเครื่อง ไปจนถึงการเขียนไฟล์เทมเพลตแรก ไปจนถึงการfunctions.phpรวมฟังก์ชันหลัก เราได้ผ่านพ้นWordPressกระบวนการทั้งหมดของธีมตั้งแต่เริ่มต้นจนถึงเสร็จสมบูรณ์ จุดสำคัญอยู่ที่การเข้าใจระบบลำดับชั้นของเทมเพลต ซึ่งจะทำการแมปคำขอเนื้อหาต่างๆ ไปยังไฟล์เทมเพลตที่เกี่ยวข้องPHPในขณะเดียวกัน การคิดแบบโมดูลาร์ (การแยกส่วนheader.phpfooter.phpฯลฯ) และแนวปฏิบัติในการพัฒนาที่เป็นมาตรฐาน (การลงทะเบียนสคริปต์อย่างถูกต้อง การใช้ฟังก์ชันฮุค) เป็นพื้นฐานในการสร้างธีมที่สามารถบำรุงรักษาได้และมีความแข็งแกร่ง จากจุดเริ่มต้นนี้ คุณสามารถสำรวจเพิ่มเติมในหัวข้อขั้นสูง เช่น การปรับแต่งคำถามของบทความ การสร้างพื้นที่วิดเจ็ต การผสานรวมCustomizer APIและการพัฒนาเทมเพลตที่กำหนดเอง เพื่อสร้างเว็บไซต์ที่มีประสิทธิภาพและเป็นมืออาชีพมากขึ้น

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

วิธีการเพิ่มแถบด้านข้างให้กับธีม?

WordPress中,侧边栏被称为“小部件区域”。首先,在functions.phpใช้ฟังก์ชัน register_sidebar() 函数注册一个或多个小部件区域。

function my_first_theme_widgets_init() {
    register_sidebar( array(
        'name'          =&gt; __( '主侧边栏', 'my-first-theme' ),
        'id'            =&gt; 'sidebar-1',
        'description'   =&gt; __( '在此添加小部件以显示在主侧边栏。', 'my-first-theme' ),
        'before_widget' =&gt; '<section id="%1$s" class="widget %2$s">',
        'after_widget'  =&gt; '</section>',
        'before_title'  =&gt; '<h3 class="widget-title">',
        'after_title'   =&gt; '</h3>',
    ) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' );

然后,在你希望显示侧边栏的模板文件(如single.phppage.php)ในการเรียกใช้ dynamic_sidebar() ในการแสดงผลในลูปของธีม

ธีมลูกคืออะไร และเหตุใดจึงควรใช้งาน?

ธีมลูกคือธีมที่สืบทอดคุณสมบัติและสไตล์ทั้งหมดจากธีมอื่น (เรียกว่า ธีมหลัก) ไฟล์หลักของมันคือstyle.cssซึ่งต้องกำหนดผ่านTemplate:ส่วนหัวของฟิลด์ประกาศธีมหลักของมัน

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

ไฟล์ functions.php ผิดพลาดจะทำให้เกิดอะไร?

functions.phpข้อผิดพลาดทางไวยากรณ์หรือข้อผิดพลาดร้ายแรงในไฟล์จะทำให้เว็บไซต์ทั้งหมดเกิด “หน้าขาวตาย” (คือแสดงหน้าเว็บเปล่า) นี่เป็นเพราะว่าไฟล์นี้อยู่ในWordPressแกนกลางถูกโหลดในระหว่างกระบวนการรวม, ข้อผิดพลาดใด ๆ อาจขัดจังหวะขั้นตอนการเริ่มต้น

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

วิธีการสร้างเทมเพลตหน้าที่กำหนดเอง?

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

ตัวอย่างเช่น สร้างไฟล์ชื่อpage-fullwidth.phpตามนี้:

<?php
/**
 * Template Name: 全宽页面
 * Description: 一个没有侧边栏的全宽度页面模板。
 */
get_header(); ?>
<!-- 你的全宽页面内容结构 -->
<?php get_footer(); ?>

หลังจากบันทึก เมื่อคุณสร้างหรือแก้ไขหน้า คุณสามารถเลือกเทมเพลต “หน้าขนาดเต็ม” ได้จากเมนูแบบเลื่อนลง “คุณสมบัติหน้า” -> “เทมเพลต”