WordPress Theme Development Beginner's Guide: สร้างธีมของคุณเองตั้งแต่เริ่มต้น

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

WordPress Theme Development Beginner's Guide: สร้างธีมของคุณเองตั้งแต่เริ่มต้น

WordPress Theme คืออะไรและโครงสร้างหลักของมัน

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

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

แนะนำให้อ่าน เริ่มต้นจากศูนย์: เรียนรู้กระบวนการหลักและการปฏิบัติที่ดีที่สุดในการพัฒนา WordPress Theme สมัยใหม่

นอกจากไฟล์ที่จำเป็นสองไฟล์นี้แล้ว ธีมที่สมบูรณ์มักจะมีไฟล์เทมเพลตอื่นๆ ด้วย เช่น สำหรับแสดงบทความเดี่ยวsingle.phpสำหรับแสดงรายการบทความarchive.phpและสำหรับแสดงหน้าpage.phpธีมยังสามารถรวมfunctions.phpไฟล์, ใช้สำหรับเพิ่มฟังก์ชันเฉพาะธีม, จดทะเบียนเมนู, แถบด้านข้าง เป็นต้น, ในขณะที่header.phpfooter.phpใช้สำหรับทำให้โค้ดส่วนหัวและส่วนท้ายของเว็บไซต์เป็นโมดูล, เพื่อความสะดวกในการบำรุงรักษาและนำกลับมาใช้ใหม่

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

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

สร้างไดเรกทอรีธีมและไฟล์หลัก

ขั้นแรก ในไดเรกทอรีการติดตั้ง WordPresswp-content/themes/ภายใต้เส้นทาง สร้างโฟลเดอร์ใหม่เป็นไดเรกทอรีธีมของคุณ ชื่อโฟลเดอร์ควรใช้อักษรพิมพ์เล็ก ตัวเลข และยัติภังค์ และไม่ควรมีช่องว่าง ตัวอย่างเช่น เราสามารถสร้างชื่อว่า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文件。这是最基础的模板,我们将从最简单的HTML结构开始,并嵌入关键的WordPress函数来动态加载内容。一个极简的index.php可以如下所示:

<!DOCTYPE html>
<html no numeric noise key 1011>
<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 1008>
    <?php wp_body_open(); ?>
    <header>
        <h1><a href="/th/</?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
        <p><?php bloginfo( 'description' ); ?></p>
    </header>

    <main>
        &lt;?php
        if ( have_posts() ) :
            while ( have_posts() ) : the_post();
                the_title( &#039;<h2>', '</h2>' );
                the_content();
            endwhile;
        else :
            echo '<p>暂无内容。</p>';
        endif;
        ?&gt;
    </main>

    <footer>
        <p>©</p>
    </footer>
    <?php wp_footer(); ?>
</body>
</html>

这个文件使用了多个核心WordPress函数:wp_head()wp_footer()用于让WordPress核心、插件等向页面头部和底部注入代码(如样式、脚本);the_post()the_content()用于在循环中输出文章数据。现在,将这个主题文件夹上传到服务器,你就可以在WordPress后台的“外观”->“主题”中看到并启用它了。

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

使用模板层级和模板标签

ทำความเข้าใจระบบลำดับชั้นของเทมเพลต

WordPress采用一套精密的模板层级(Template Hierarchy)系统来决定对于任何一个特定的页面请求,应该使用哪个模板文件来渲染。这套系统基于从最具体到最通用的原则进行匹配。例如,当访问一篇ID为123的文章时,WordPress会按顺序寻找:single-post-123.php -> single-post.php -> single.php -> singular.php -> index.php。开发者可以利用这个特性,通过创建更具体的模板文件来精确控制不同内容的显示。

掌握常用模板标签

模板标签(Template Tags)是WordPress内置的PHP函数,用于在主题模板中动态输出各种数据。它们是主题开发的核心工具。除了上面例子中用到的the_title()the_content(),还有大量其他标签。

ตัวอย่างเช่น,the_permalink()用于输出当前文章的固定链接;the_post_thumbnail()用于输出文章的特色图像;the_category()用于输出文章所属的分类列表。条件判断标签也至关重要,如is_home()is_single()is_page()is_category()等,它们允许你根据当前页面的类型执行不同的代码逻辑。

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%
<?php if ( is_single() ) : ?>
    <div class="post-meta">
        发布于: | 分类:
    </div>
<?php endif; ?>

这段代码只在单篇文章页面显示文章的发布日期和分类信息。

เพิ่มฟังก์ชันธีมและการปรับแต่ง

添加主题功能文件

functions.php文件是你的主题的“工具箱”。在这里添加的代码会随着主题的激活而生效。它的一个常见用途是注册主题支持的功能,例如文章特色图像、自定义菜单位置和自定义背景。

<?php
function my_first_theme_setup() {
    // 让主题支持文章和页面的特色图像功能
    add_theme_support( 'post-thumbnails' );

    // 注册一个导航菜单位置
    register_nav_menus( array(
        'primary' => __( '主导航菜单', 'my-first-theme' ),
    ) );

    // 支持HTML5的标记格式
    add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption', 'style', 'script' ) );

    // 为文章摘要添加更多标签支持
    add_filter( 'excerpt_more', 'my_first_theme_excerpt_more' );
}
add_action( 'after_setup_theme', 'my_first_theme_setup' );

function my_first_theme_excerpt_more( $more ) {
    return '...';
}
?>

引入样式表和脚本

为了保持代码的整洁和遵循最佳实践,应该将样式表(CSS)和JavaScript文件通过functions.php文件进行排队加载,而不是直接在模板文件中使用或标签。这确保了依赖关系被正确处理,并避免重复加载。

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

ใช้wp_enqueue_style()函数来加载你的主样式表,通常我们会将style.css作为依赖项。对于脚本,使用wp_enqueue_script()ฟังก์ชัน

function my_first_theme_scripts() {
    // 加载主题的主样式表
    wp_enqueue_style( 'my-first-theme-style', get_stylesheet_uri(), array(), '1.0' );

    // 加载一个自定义的JavaScript文件
    wp_enqueue_script( 'my-first-theme-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'my_first_theme_scripts' );

สรุป

WordPress主题开发是一个将创意、设计和技术结合的过程。通过理解主题的核心文件结构,特别是style.cssindex.php,你已经迈出了坚实的第一步。掌握模板层级系统使你能够为网站的不同部分创建精确的展示逻辑,而灵活运用模板标签则能动态地输出所有内容。通过functions.php文件,你可以安全地为主题添加各种功能和支持,并以标准化的方式管理资源。从这个简单的基础开始,你可以逐步探索更高级的主题,如创建子主题、使用Walker类定制导航菜单、集成Customizer API进行实时预览设置,甚至是利用块编辑器(Gutenberg)开发模式构建全站编辑(FSE)主题。持续实践,参考官方文档和优秀主题的代码,是提升开发技能的最佳途径。

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

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

开发WordPress主题需要哪些技术基础?

开发WordPress主题需要掌握HTML、CSS和PHP的基础知识。HTML用于构建页面结构,CSS用于控制样式和布局,而PHP是WordPress的核心编程语言,用于处理逻辑、调用数据和生成动态内容。对JavaScript有基本了解也会对添加交互功能有所帮助。

如何在我的本地电脑上测试主题开发?

强烈建议先在本地环境中进行主题开发。你可以使用本地服务器软件包,如XAMPP、MAMP、Local by Flywheel或Laragon。这些工具可以在你的电脑上快速搭建一个包含Apache、MySQL和PHP的WordPress运行环境,让你在不影响线上网站的情况下进行开发和调试。

ไฟล์ functions.php ของธีมและปลั๊กอินแตกต่างกันอย่างไร?

functions.php文件中的功能只在当前激活的主题下生效。如果你切换了主题,这些功能将不再可用。而插件提供的功能独立于主题,无论切换哪个主题,只要插件处于激活状态,其功能就会保持。一般来说,与网站视觉呈现和布局紧密相关的功能放在主题的functions.php中,而提供独立、通用功能(如联系表单、SEO优化、缓存)的代码则更适合做成插件。

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

子主题是一个依赖于另一个主题(称为父主题)的主题。它允许你修改或扩展父主题的功能和样式,而无需直接修改父主题的文件。这最大的好处是当父主题更新时,你对样式和功能的定制(位于子主题中)不会丢失。要创建子主题,只需在它的style.css文件中使用“Template:”声明来指定父主题的目录名,然后你可以只创建需要覆盖的模板文件或添加新的功能。