ต้องการเริ่มต้นสร้างเว็บไซต์ของตัวเองตั้งแต่เริ่มต้นWordPressก่อนอื่นต้องเข้าใจหัวใจหลักของมัน นั่นคือธีม ธีมเป็นตัวกำหนดรูปลักษณ์ เค้าโครง ฟังก์ชันการทำงาน และประสบการณ์ผู้ใช้ของเว็บไซต์ การพัฒนาเองต่างจากการใช้ธีมสำเร็จรูปตรงที่ให้การควบคุมอย่างสมบูรณ์ ประสิทธิภาพที่สูงขึ้น และภาพลักษณ์แบรนด์ที่เป็นเอกลักษณ์ ไม่ว่าคุณจะเป็นนักพัฒนา Front-end ที่ต้องการเข้าใจลึกซึ้งเกี่ยวกับPHPการเรนเดอร์แบบไดนามิก หรือPHPนักพัฒนา Back-end ที่ต้องการพัฒนาทักษะ Front-end การเรียนรู้การพัฒนาธีมจะเปิดประตูบานใหม่ให้คุณ
การเตรียมการ: การตั้งค่าสภาพแวดล้อมการพัฒนาในเครื่อง
ก่อนที่จะเขียนโค้ดบรรทัดแรก สภาพแวดล้อมการพัฒนาในเครื่องที่มืออาชีพสามารถเพิ่มประสิทธิภาพและประสบการณ์ได้อย่างมาก ซึ่งช่วยหลีกเลี่ยงความเสี่ยงที่เกิดจากการแก้ไขโดยตรงบนเซิร์ฟเวอร์ออนไลน์
การตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่น
ประการแรก เราจำเป็นต้องจำลองสภาพแวดล้อมของเซิร์ฟเวอร์เว็บบนคอมพิวเตอร์ในเครื่อง แนะนำให้ใช้ชุดซอฟต์แวร์ เช่น Local(由WP Engineผลิตร่วม)、XAMPP 或 MAMP。เครื่องมือเหล่านี้ติดตั้งด้วยคลิกเดียวApache、MySQL和PHPเช่นLocalเป็นตัวอย่าง มันรวมWordPressติดตั้งด้วยคลิกเดียว、SSLฟังก์ชันการจับใบรับรองและอีเมล เป็นมิตรกับนักพัฒนาอย่างมาก
แนะนำให้อ่าน เรียนรู้การพัฒนา WordPress Theme ตั้งแต่เริ่มต้น: คู่มือฉบับสมบูรณ์ในการสร้างธีมเว็บไซต์ที่กำหนดเอง。
หลังจากติดตั้งเสร็จแล้ว ให้สร้างWordPressเว็บไซต์ใหม่ โปรดตรวจสอบให้แน่ใจว่าPHPเวอร์ชันต้องเป็น 7.4 หรือสูงกว่า พร้อมทั้งจำชื่อฐานข้อมูล ชื่อผู้ใช้ และรหัสผ่าน ซึ่งจะใช้ในการตั้งค่าต่อไป
การแก้ไขโค้ดและการควบคุมเวอร์ชัน
ถ้าจะทำงานให้ดี ต้องเตรียมเครื่องมือให้พร้อม ขอแนะนำให้ใช้โปรแกรมแก้ไขโค้ดที่มีประสิทธิภาพ เช่น Visual Studio Code、PhpStorm 或 Sublime Textซึ่งมีคุณสมบัติเช่นการเน้นไวยากรณ์ คำแนะนำโค้ด การเติมข้อความอัตโนมัติ และระบบปลั๊กอินที่หลากหลาย
ในเวลาเดียวกัน เริ่มใช้ระบบควบคุมเวอร์ชันทันที โดยแนะนำให้เลือกGitโดยการเริ่มต้นที่ไดเรกทอรีรากของโปรเจกต์เป็นGitและใช้ไฟล์.gitignoreเพื่อแยกไฟล์ที่ไม่จำเป็น (เช่นสื่อที่อัปโหลดและแคช) คุณสามารถจัดการการเปลี่ยนแปลงโค้ดได้อย่างปลอดภัย สะดวกในการย้อนกลับและทำงานร่วมกัน โฮสต์ที่เก็บข้อมูลไปยังGitHub、GitLab或Bitbucketเป็นมาตรฐานปฏิบัติในอุตสาหกรรม
เข้าใจโครงสร้างไฟล์และเทมเพลตหลักของธีม
โครงสร้างมาตรฐานWordPressธีมคือโฟลเดอร์ที่มีไฟล์เฉพาะ การเข้าใจบทบาทของแต่ละไฟล์เป็นรากฐานในการสร้างธีม
ไฟล์ธีมที่ต้องมี
ตามWordPressข้อกำหนดอย่างเป็นทางการระบุว่า ธีมพื้นฐานที่สุดต้องการเพียงสองไฟล์:style.css 和 index.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}.php或page-{id}.phpหากไม่มีให้ใช้page.phpและสุดท้ายคือsingular.php。
3. 访问文章归档页:优先使用archive-{post-type}.phpหากไม่มีให้ใช้archive.phpและสุดท้ายคือindex.php。
แม่แบบสำคัญอื่นๆ ได้แก่: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โครงสร้าง และนำเข้าเฮดเดอร์และฟุตเตอร์ด้วยตนเอง
<!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>
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title( '<h2>', '</h2>' );
the_content();
endwhile;
else :
_e( '抱歉,没有找到您要的内容。', 'my-first-theme' );
endif;
?>
</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ไฟล์:
<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
the_title( '<h2>', '</h2>' );
the_content();
endwhile;
else :
_e( '抱歉,没有找到您要的内容。', 'my-first-theme' );
endif;
?> ตอนนี้ โครงสร้างธีมของคุณมีความชัดเจนและจัดการง่าย คุณสามารถ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.php, footer.phpฯลฯ) และแนวปฏิบัติในการพัฒนาที่เป็นมาตรฐาน (การลงทะเบียนสคริปต์อย่างถูกต้อง การใช้ฟังก์ชันฮุค) เป็นพื้นฐานในการสร้างธีมที่สามารถบำรุงรักษาได้และมีความแข็งแกร่ง จากจุดเริ่มต้นนี้ คุณสามารถสำรวจเพิ่มเติมในหัวข้อขั้นสูง เช่น การปรับแต่งคำถามของบทความ การสร้างพื้นที่วิดเจ็ต การผสานรวมCustomizer APIและการพัฒนาเทมเพลตที่กำหนดเอง เพื่อสร้างเว็บไซต์ที่มีประสิทธิภาพและเป็นมืออาชีพมากขึ้น
คำถามที่พบบ่อย (FAQ)
วิธีการเพิ่มแถบด้านข้างให้กับธีม?
在WordPress中,侧边栏被称为“小部件区域”。首先,在functions.phpใช้ฟังก์ชัน register_sidebar() 函数注册一个或多个小部件区域。
function my_first_theme_widgets_init() {
register_sidebar( array(
'name' => __( '主侧边栏', 'my-first-theme' ),
'id' => 'sidebar-1',
'description' => __( '在此添加小部件以显示在主侧边栏。', 'my-first-theme' ),
'before_widget' => '<section id="%1$s" class="widget %2$s">',
'after_widget' => '</section>',
'before_title' => '<h3 class="widget-title">',
'after_title' => '</h3>',
) );
}
add_action( 'widgets_init', 'my_first_theme_widgets_init' ); 然后,在你希望显示侧边栏的模板文件(如single.php或page.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(); ?> หลังจากบันทึก เมื่อคุณสร้างหรือแก้ไขหน้า คุณสามารถเลือกเทมเพลต “หน้าขนาดเต็ม” ได้จากเมนูแบบเลื่อนลง “คุณสมบัติหน้า” -> “เทมเพลต”
ขั้นต่อไป ฉันควรทำอย่างไรต่อไป
อ่านเพิ่มเติมและรับความรู้ที่มีประโยชน์
下面这些内容与本文主题相关,适合继续深入阅读。优先从与你当前问题最接近的文章开始看,再逐步扩展到周边主题,效果通常会更好。
- คู่มือขั้นสุดท้ายในการสร้างเว็บไซต์: แผนการปฏิบัติจริงแบบครบวงจรตั้งแต่พื้นฐานสู่การออนไลน์ระดับมืออาชีพ
- คู่มือฉบับสมบูรณ์ของ Tailwind CSS: เส้นทางการเรียนรู้เฟรมเวิร์กที่ใช้งานได้จริงตั้งแต่เริ่มต้นจนถึงระดับเชี่ยวชาญ
- ทำไมต้องเลือก Tailwind CSS: โซลูชันที่มีประสิทธิภาพและใช้งานได้จริงสำหรับการพัฒนาเว็บสมัยใหม่
- คู่มือการสร้างเว็บไซต์แบบสมบูรณ์: กระบวนการทั้งหมดตั้งแต่เริ่มต้นจนถึงการออนไลน์และคำอธิบายสแต็กเทคโนโลยี
- 10 เทคนิคการออกแบบและพัฒนา WordPress Theme ที่จำเป็นสำหรับการยกระดับความมืออาชีพของเว็บไซต์