WordPress Template Hierarchy: Hướng dẫn chi tiết các Template File
Hiểu về Single.php, Index.php và Các Template File trong WordPress
WordPress là một hệ quản trị nội dung (CMS) mạnh mẽ, cung cấp hệ thống template file giúp lập trình viên tùy chỉnh giao diện dễ dàng. Trong bài viết này, chúng ta sẽ tìm hiểu về các file quan trọng như single.php
, index.php
, page.php
, archive.php
và cách chúng hoạt động trong hệ thống WordPress.
1. Template Hierarchy trong WordPress
WordPress sử dụng hệ thống Template Hierarchy để xác định tệp nào sẽ được sử dụng để hiển thị nội dung. Khi người dùng truy cập một trang, WordPress sẽ kiểm tra thứ tự ưu tiên của template file theo sơ đồ sau:
index.php
├── front-page.php (Trang chủ)
├── home.php (Trang blog)
├── single.php (Bài viết đơn)
├── page.php (Trang tĩnh)
├── archive.php (Lưu trữ bài viết)
│ ├── category.php (Danh mục)
│ ├── tag.php (Thẻ)
│ ├── author.php (Tác giả)
│ ├── date.php (Theo ngày)
└── search.php (Trang tìm kiếm)

🔗 Tham khảo: Template Hierarchy trong WordPress
2. Giải thích các Template File chính
2.1. index.php
– File Mặc Định Của WordPress
Tệp index.php
là file mặc định trong mọi theme WordPress. Nếu WordPress không tìm thấy template file nào phù hợp, nó sẽ fallback về index.php
.
📌 Chức năng:
- Hiển thị trang chủ nếu không có
front-page.php
hoặchome.php
. - Hiển thị danh sách bài viết nếu không có
archive.php
. - Là file backup của toàn bộ theme.
Ví dụ về index.php
:
<?php get_header(); ?>
<main>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php the_excerpt(); ?>
<?php endwhile; ?>
<?php else : ?>
<p>Không có bài viết nào để hiển thị.</p>
<?php endif; ?>
</main>
<?php get_footer(); ?>
🔗 Tham khảo: Cấu trúc template trong WordPress
2.2. single.php
– Hiển Thị Bài Viết Đơn
Tệp single.php
được sử dụng để hiển thị nội dung chi tiết của một bài viết. Khi người dùng nhấp vào một bài viết, WordPress sẽ tìm single.php
để hiển thị nội dung.
Ví dụ về single.php
:
<?php get_header(); ?>
<article>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
<?php endwhile; ?>
<?php else : ?>
<p>Bài viết không tồn tại.</p>
<?php endif; ?>
</article>
<?php get_footer(); ?>
🔗 Tìm hiểu thêm: Cách tùy chỉnh single.php
2.3. page.php
– Hiển Thị Trang Tĩnh
Tệp page.php
được sử dụng để hiển thị nội dung của các trang tĩnh (Page) như Giới thiệu, Liên hệ, Điều khoản.
📌 Khác biệt giữa single.php
và page.php
:
single.php
hiển thị bài viết (Post).page.php
hiển thị trang tĩnh (Page).
Ví dụ về page.php
:
<?php get_header(); ?>
<main>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<p><?php the_content(); ?></p>
<?php endwhile; ?>
<?php else : ?>
<p>Trang không tồn tại.</p>
<?php endif; ?>
</main>
<?php get_footer(); ?>
2.4. archive.php
– Hiển Thị Danh Mục Bài Viết
Tệp archive.php
được sử dụng để hiển thị danh sách bài viết theo danh mục, thẻ, ngày tháng hoặc tác giả.
📌 Các biến thể của archive.php
:
category.php
– Hiển thị bài viết theo danh mục.tag.php
– Hiển thị bài viết theo thẻ.author.php
– Hiển thị bài viết của một tác giả.date.php
– Hiển thị bài viết theo ngày/tháng.
Ví dụ về archive.php
:
<?php get_header(); ?>
<h1><?php single_cat_title(); ?></h1>
<ul>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>
<?php else : ?>
<p>Không có bài viết nào trong danh mục này.</p>
<?php endif; ?>
</ul>
<?php get_footer(); ?>
🔗 Tham khảo: Cách tạo archive.php trong WordPress
3. Tối ưu SEO cho Template File WordPress

Thêm Meta Title và Meta Description
<head>
<title><?php wp_title(); ?></title>
<meta name="description" content="<?php the_excerpt(); ?>">
</head>
Thêm Breadcrumbs (Đường Dẫn Điều Hướng)
if (function_exists('yoast_breadcrumb')) {
yoast_breadcrumb('<p id="breadcrumbs">', '</p>');
}
Sử dụng Outbound Link Chất Lượng
Tăng Tốc Độ Tải Trang
- Dùng plugin cache như WP Super Cache.
- Tối ưu ảnh bằng plugin Smush.
- Dùng CDN để phân phối nội dung nhanh hơn.
Xem thêm
Hàm have_posts() trong WordPress
Share this content:
Post Comment