WordPress

Tổng hợp các function thường dùng trong lập trình Theme WordPress

A
19 Tháng 2, 2026 8 phút đọc 32 lượt xem

Các Hàm Thường Dùng Trong Lập Trình Theme WordPress

Khi xây dựng theme WordPress từ đầu, việc nắm chắc các hàm core là yêu cầu tối thiểu. Không phải vì chúng phức tạp, mà vì chúng xuất hiện ở hầu hết mọi file template và quyết định trực tiếp đến tính tương thích, bảo mật, và khả năng mở rộng của giao diện. Bài viết này sẽ tổng hợp các nhóm hàm thường xuyên sử dụng trong lập trình WordPress.

1. Hàm Lấy Thông Tin Website

bloginfo() và get_bloginfo()

Đây là cặp hàm dùng để truy xuất thông tin cơ bản của website được cấu hình tại Settings > General.

Điểm khác biệt cốt lõi:

  • bloginfo() — echo trực tiếp giá trị ra màn hình
  • get_bloginfo() — return giá trị, dùng khi cần lưu vào biến hoặc xử lý logic

Các tham số thường dùng:

bloginfo('name')               // Tên website
bloginfo('description')        // Tagline / mô tả website
bloginfo('url')                // URL trang chủ
bloginfo('siteurl')            // URL được cấu hình trong Settings
bloginfo('wpurl')              // URL cài đặt WordPress
bloginfo('admin_email')        // Email quản trị
bloginfo('charset')            // Kiểu encoding, mặc định UTF-8
bloginfo('language')           // Ngôn ngữ hiện tại
bloginfo('version')            // Phiên bản WordPress đang chạy
bloginfo('html_type')          // Content type, mặc định text/html
bloginfo('stylesheet_url')     // Đường dẫn đến style.css của theme
bloginfo('stylesheet_directory') // Thư mục theme hiện tại
bloginfo('rss_url')            // RSS 0.92 feed URL
bloginfo('rss2_url')           // RSS 2.0 feed URL

Ví dụ thực tế:

<h1><?php bloginfo('name'); ?></h1>
<p><?php bloginfo('description'); ?></p>

Cách làm này giúp theme linh động hoàn toàn — khi admin thay đổi tên website trong Settings, giao diện tự động cập nhật mà không cần sửa code.

2. Hàm Nhúng Các File Template

WordPress khuyến khích chia theme thành nhiều file nhỏ, mỗi file đảm nhận một khu vực riêng. Các hàm dưới đây dùng để kết nối các file đó lại với nhau.

get_header(), get_footer(), get_sidebar()

get_header();   // Gọi header.php
get_footer();   // Gọi footer.php
get_sidebar();  // Gọi sidebar.php

Các hàm này đều nhận tham số dạng slug để gọi file con:

get_header('campaign');   // Gọi header-campaign.php
get_sidebar('shop');      // Gọi sidebar-shop.php

get_template_part()

Dùng để nhúng các component tùy chỉnh, đặc biệt hữu ích khi một đoạn markup được tái sử dụng ở nhiều nơi.

get_template_part('template-parts/content', 'single');
// Gọi file: template-parts/content-single.php

get_template_part('components/card');
// Gọi file: components/card.php

Đây là cách tiếp cận chuẩn được khuyến nghị trong WordPress Developer Resources — giúp codebase dễ đọc, dễ maintain, và tránh lặp code.

3. Hook wp_head() và wp_footer()

Đây là hai hàm bắt buộc phải có trong mọi theme WordPress. Thiếu một trong hai, các plugin sẽ không thể inject script/style đúng cách, và một số tính năng core sẽ bị vô hiệu hóa.

wp_head()

Đặt ngay trước thẻ đóng </head> trong header.php:

<?php wp_head(); ?>
</head>

Hàm này là điểm hook để WordPress và các plugin chèn: meta tags, stylesheet, tracking scripts (Google Analytics, Facebook Pixel), và dữ liệu schema.

wp_footer()

Đặt ngay trước thẻ đóng </body> trong footer.php:

<?php wp_footer(); ?>
</body>

Ngoài việc nhúng JavaScript ở cuối trang để tối ưu performance, wp_footer() còn chịu trách nhiệm render Admin Bar khi người dùng đang đăng nhập — thanh công cụ cho phép chỉnh sửa nhanh trực tiếp từ frontend.

4. Conditional Tags

Conditional tags là nhóm hàm trả về true hoặc false, dùng để kiểm tra context hiện tại của trang đang được render. Đây là cơ sở để xây dựng logic hiển thị thông minh trong theme.

Nhóm kiểm tra loại trang

HàmMô tả
is_front_page()Trang chủ được chỉ định trong Settings > Reading
is_home()Trang hiển thị danh sách bài viết (blog index)
is_single()Trang chi tiết post type dạng non-hierarchical
is_page()Trang thuộc post type Page
is_singular()Bao gồm is_single(), is_page(), is_attachment()
is_archive()Trang archive của bất kỳ taxonomy nào
is_category()Trang archive của category
is_tag()Trang archive của tag
is_tax()Trang archive của custom taxonomy
is_author()Trang archive của tác giả
is_search()Trang kết quả tìm kiếm
is_404()Trang lỗi 404
is_attachment()Trang hiển thị media attachment
is_feed()Trang RSS feed
is_paged()Trang đang được phân trang
is_preview()Đang xem bản preview của bài viết nháp

Nhóm kiểm tra trạng thái bài viết

HàmMô tả
is_sticky()Bài viết được đánh dấu Sticky
in_category()Bài viết thuộc một category cụ thể
has_tag()Bài viết có gắn tag
has_term()Bài viết có chứa term của taxonomy bất kỳ
comments_open()Tính năng comment đang được bật
in_the_loop()Đang trong vòng lặp WordPress Loop

Nhóm kiểm tra hệ thống và người dùng

HàmMô tả
is_admin()Đang truy cập trang quản trị
is_user_logged_in()Người dùng đã đăng nhập
is_super_admin()Người dùng là Super Admin
is_child_theme()Theme hiện tại là Child Theme
is_multisite()WordPress đang chạy ở chế độ Multisite
is_main_site()Đây là website chính trong mạng Multisite
is_page_template()Page đang dùng Page Template cụ thể
wp_is_mobile()Thiết bị truy cập là mobile
is_rtl()Website đang dùng ngôn ngữ đọc từ phải sang trái
username_exists()Kiểm tra username có tồn tại không
is_plugin_active()Plugin đã được kích hoạt hay chưa

Nhóm kiểm tra Sidebar và Widget

HàmMô tả
is_active_sidebar()Sidebar đang được sử dụng
is_active_widget()Widget đã được gán vào sidebar
is_dynamic_sidebar()Sidebar đã có widget chưa

Ví dụ ứng dụng thực tế:

// Chỉ hiển thị banner quảng cáo ở trang bài viết chi tiết
if ( is_single() ) {
    get_template_part('components/ad-banner');
}

// Hiển thị sidebar khác nhau tùy context
if ( is_archive() ) {
    get_sidebar('archive');
} elseif ( is_single() ) {
    get_sidebar('post');
} else {
    get_sidebar();
}

// Ẩn widget nếu đang xem trên mobile
if ( ! wp_is_mobile() ) {
    dynamic_sidebar('desktop-sidebar');
}

Tổng Kết

Việc am hiểu và sử dụng linh hoạt các core function không chỉ đơn thuần là kỹ năng viết code, mà là chìa khóa để bạn hoàn toàn làm chủ kiến trúc của WordPress. Một nền tảng kiến thức vững chắc về các hàm này sẽ giúp bạn tối ưu hóa số lượng truy vấn vào cơ sở dữ liệu, từ đó giảm tải đáng kể cho hosting/server và tăng tốc độ tải trang.

0 bình luận

Để lại bình luận

Bạn phải đăng nhập để gửi bình luận.

Quay về trang chủ