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

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

WordPress Theme คืออะไรและโครงสร้างพื้นฐานของธีม

หนึ่งWordPressธีมกำหนดลักษณะที่ปรากฏและวิธีการนำเสนอของเว็บไซต์ มันคือชุดของไฟล์ที่ทำงานร่วมกันผ่านเทมเพลต สไตล์ชีต และโค้ด PHP การเข้าใจโครงสร้างพื้นฐานของธีมเป็นขั้นตอนแรกในการพัฒนา ไฟล์หลักมักรวมถึง:
- style.css: สไตล์ชีตหลักของธีม พร้อมทั้งมีข้อมูลเมตา (ชื่อธีม ผู้เขียน คำอธิบาย ฯลฯ) ของธีม
- index.php: ไฟล์เทมเพลตหลักเริ่มต้น เป็นไฟล์ที่จำเป็นสำหรับธีม
- functions.php: ใช้สำหรับเพิ่มฟังก์ชันธีม, ลงทะเบียนสคริปต์และสไตล์, กำหนดฟังก์ชันที่กำหนดเอง ฯลฯ
- header.php: กำหนดพื้นที่ส่วนหัวของเว็บไซต์
- footer.php: กำหนดพื้นที่ส่วนท้ายของเว็บไซต์
- page.phpsingle.php: ใช้สำหรับเรนเดอร์ “หน้า” และ “บทความ” ตามลำดับ

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

ก่อนเริ่มต้น คุณจำเป็นต้องมีสภาพแวดล้อมการพัฒนาท้องถิ่น (เช่น Local by Flywheel, XAMPP) หรือเซิร์ฟเวอร์ทดสอบ ตัวแก้ไขโค้ด (เช่น VS Code) และไคลเอ็นต์ FTP (สำหรับการปรับใช้) ก็เป็นสิ่งจำเป็นเช่นกัน

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

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

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

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

กำหนดสไตล์และข้อมูลธีม

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

/*
Theme Name: My First Theme
Theme URI: https://example.com/my-first-theme
Author: Your Name
Author URI: https://yourwebsite.com
Description: 这是一个用于学习的自定义WordPress主题。
Version: 1.0
License: GNU General Public License v2 or later
Text Domain: my-first-theme
*/

บล็อกความคิดเห็นนี้ให้ธีมในWordPressข้อมูลที่แสดงในแบคเอนด์Text Domainใช้สำหรับสากล เป็นตัวระบุธีม

สร้างไฟล์เทมเพลตหลัก

ต่อไป สร้างไฟล์พื้นฐานที่สุดindex.phpไฟล์ ซึ่งเป็นเทมเพลตเริ่มต้นสำหรับทุกหน้า

<!DOCTYPE html>
<html no numeric noise key 1014>
<head>
    <meta charset="<?php bloginfo('charset'); ?>">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <?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>
                &lt;?php
            endwhile;
        else :
            echo &#039;<p>没有找到内容。</p>';
        endif;
        ?&gt;
    </main>

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

ไฟล์นี้ใช้หลายคอร์WordPressแท็กเทมเพลต เช่นthe_post(), the_title(), the_content()ใช้เพื่อวนลูปแสดงบทความwp_head()wp_footer()ฮุกมีความสำคัญอย่างยิ่ง เนื่องจากอนุญาตให้WordPressแกนหลัก, ปลั๊กอิน และสคริปต์อื่น ๆ แทรกโค้ดที่จำเป็น

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

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

เพิ่มประสิทธิภาพและความยืดหยุ่นของธีม

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

แนะนำไฟล์ฟังก์ชันหลัก

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

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%
<?php
function my_theme_setup() {
    // 让WordPress管理文档标题
    add_theme_support('title-tag');
    // 启用文章和页面的特色图像功能
    add_theme_support('post-thumbnails');
    // 注册一个主菜单
    register_nav_menus(array(
        'primary' => __('主导航菜单', 'my-first-theme'),
    ));
    // 为RSS feed链接添加支持
    add_theme_support('automatic-feed-links');
}
add_action('after_setup_theme', 'my_theme_setup');

function my_theme_scripts() {
    // 引入主样式表
    wp_enqueue_style('main-style', get_stylesheet_uri());
    // 引入自定义JavaScript文件
    wp_enqueue_script('my-theme-script', get_template_directory_uri() . '/js/script.js', array(), null, true);
}
add_action('wp_enqueue_scripts', 'my_theme_scripts');
?>

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

การแยกเทมเพลตส่วนหัวและส่วนท้ายหน้า

index.phpการแยกโค้ดส่วนหัวและส่วนท้ายหน้าในไฟล์แยกต่างหาก สามารถเพิ่มการนำโค้ดกลับมาใช้ใหม่ได้ สร้างheader.phpประกอบด้วยจากจนถึงก่อนเปิดแท็ก标签之前的所有代码。创建footer.php,包含从关闭标签之后到的所有代码。然后,在index.phpใช้ฟังก์ชันget_header()get_footer()นำเข้าในฟังก์ชัน

สร้างเทมเพลตแถบด้านข้าง

การสร้างsidebar.phpไฟล์ ซึ่งสามารถวางพื้นที่วิดเจ็ตได้ ขั้นแรก ให้ลงทะเบียนพื้นที่วิดเจ็ตในfunctions.phpจากนั้น เรียกใช้พื้นที่วิดเจ็ตใน

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

function my_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; '<h2 class="widget-title">',
        'after_title'   =&gt; '</h2>',
    ));
}
add_action('widgets_init', 'my_theme_widgets_init');

จากนั้น ในsidebar.phpเรียกใช้พื้นที่วิดเจ็ตใน

<?php if (is_active_sidebar('sidebar-1')) : ?>
    <aside>
        <?php dynamic_sidebar('sidebar-1'); ?>
    </aside>
<?php endif; ?>

สุดท้าย ในindex.phpในส่วนนี้ คุณสามารถใช้พื้นที่เนื้อหาหลักข้างๆget_sidebar()เรียกใช้มัน

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

การนำสไตล์ไปใช้และการออกแบบที่ตอบสนอง

ธีมที่ไม่มีสไตล์จะขาดความน่าสนใจ เราจะทำให้ธีมสวยงามและปรับให้เหมาะกับอุปกรณ์ต่างๆ ผ่าน CSS

การสร้างสไตล์โครงร่างพื้นฐาน

style.cssใต้บล็อกความคิดเห็น เริ่มเพิ่มสไตล์พื้นฐาน ก่อนอื่นกำหนดตัวแปร CSS และรีเซ็ตสไตล์ จากนั้นตั้งค่าลำดับขั้นพื้นฐาน

:root {
    --primary-color: #0073aa;
    --text-color: #333;
    --background-color: #f5f5f5;
}
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.6;
    color: var(--text-color);
    background: var(--background-color);
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}
header {
    background: white;
    padding: 2rem;
    margin-bottom: 2rem;
    border-bottom: 3px solid var(--primary-color);
}
main {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 2rem;
}
article {
    background: white;
    padding: 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 5px;
}

นำเมนูนำทางที่ตอบสนองไปใช้

สำหรับเมนูนำทางที่ลงทะเบียนในfunctions.phpเราต้องเพิ่มสไตล์และทำให้เป็นมิตรกับอุปกรณ์เคลื่อนที่ ก่อนอื่นในheader.phpเมนูผลลัพธ์:

<nav>
    <?php
    wp_nav_menu(array(
        'theme_location' => 'primary',
        'menu_class'     => 'primary-menu',
    ));
    ?>
</nav>

จากนั้นเพิ่มสไตล์ใน CSS และใช้ media query เพื่อปรับให้เหมาะกับอุปกรณ์เคลื่อนที่:

.primary-menu {
    display: flex;
    list-style: none;
}
.primary-menu li {
    margin-left: 1.5rem;
}
.primary-menu a {
    text-decoration: none;
    color: var(--text-color);
    font-weight: 500;
}
.primary-menu a:hover {
    color: var(--primary-color);
}

/* 响应式设计 */
@media (max-width: 768px) {
    main {
        grid-template-columns: 1fr; /* 移除侧边栏 */
    }
    .primary-menu {
        flex-direction: column;
    }
    .primary-menu li {
        margin: 0.5rem 0;
    }
}

ปรับปรุงภาพเด่นของบทความ

เนื่องจากเราได้เปิดใช้งานpost-thumbnailsสนับสนุน สามารถทำได้ในindex.phpsingle.phpในลูปของการวนซ้ำ, ใช้the_post_thumbnail()ฟังก์ชันเพื่อแสดงรูปเด่น และเพิ่มคลาส CSS เพื่อควบคุมขนาด

สรุป

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

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

### การพัฒนาธีมต้องเริ่มจากศูนย์จริงๆ หรือ?
ไม่จำเป็นเสมอไป คุณสามารถเลือกพัฒนาโดยใช้ “ธีมเริ่มต้น” (Starter Theme) หรือ “เฟรมเวิร์ก” (Framework) ที่มีน้ำหนักเบาและมีอยู่แล้วเป็นพื้นฐาน เช่น Underscores (_s) หรือ Sage เครื่องมือเหล่านี้ให้โครงสร้างโค้ดที่ดีและแนวทางปฏิบัติที่ดีที่สุด ซึ่งสามารถประหยัดเวลาในการตั้งค่าพื้นฐานได้มาก ทำให้คุณสามารถโฟกัสกับการออกแบบและฟังก์ชันที่เป็นเอกลักษณ์ได้มากขึ้น

จะทำให้ธีมของฉันรองรับ Child Theme ได้อย่างไร?

เพื่อให้ธีมของคุณสามารถปรับแต่งได้อย่างปลอดภัย คุณสามารถออกแบบให้เป็น “ธีมหลัก” (Parent Theme) ซึ่งอนุญาตให้ผู้ใช้สร้าง “ธีมลูก” (Child Theme) เพื่อแทนที่สไตล์และเทมเพลตได้ คุณต้องแน่ใจว่าธีมปฏิบัติตามโครงสร้างการจัดระเบียบเทมเพลตที่ดี และหลีกเลี่ยงการใช้เส้นทางแบบสัมบูรณ์ (absolute path) ในการอ้างอิงทรัพยากรในstyle.cssแต่ให้ใช้ฟังก์ชันเช่นget_template_directory_uri()แทน ธีมลูกต้องการเพียงแค่style.cssและตัวเลือกfunctions.phpสามารถสืบทอดฟังก์ชันทั้งหมดของธีมหลักได้

วิธีการดีบักข้อผิดพลาดทั่วไประหว่างการพัฒนา?

เปิดWordPressโหมดดีบักมีความสำคัญอย่างยิ่ง ในคุณwp-config.phpในไฟล์, ตั้งค่าWP_DEBUGเป็นtrueนี่จะทำให้ข้อผิดพลาด คำเตือน และการแจ้งเตือนทั้งหมดของ PHP แสดงบนหน้าจอ พร้อมกันนั้น ใช้เครื่องมือนักพัฒนาของเบราว์เซอร์ (กด F12) เพื่อตรวจสอบข้อผิดพลาดของ CSS และ JavaScript และดูแท็บคอนโซลและเครือข่าย

หลังจากพัฒนาเสร็จแล้ว ฉันจะเผยแพร่ธีมของฉันได้อย่างไร?

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