File functions.php Trong WordPress Ở Đâu Và Có Chức Năng Gì?

File functions.php được xem là một trong những file quan trọng nhất trong WordPress. Đây là nơi giúp bạn thêm chức năng mới, tùy chỉnh hành vi của theme và can thiệp sâu vào cách website hoạt động mà không cần cài thêm quá nhiều plugin.

Tuy nhiên, cũng chính vì có quyền truy cập sâu vào hệ thống nên chỉ cần một lỗi cú pháp nhỏ trong file này cũng có thể khiến toàn bộ website bị trắng trang (White Screen of Death).

Trong quá trình thiết kế và tối ưu hơn 500 website WordPress cho khách hàng, đội ngũ Halo Media nhận thấy rất nhiều người dùng biết đến functions.php nhưng chưa thực sự hiểu file này nằm ở đâu, hoạt động như thế nào và khi nào nên sử dụng.

Bài viết này sẽ giúp bạn hiểu rõ:

  • File functions.php nằm ở đâu trong WordPress.
  • Vai trò thực sự của file functions.php.
  • Những đoạn code hữu ích thường dùng.
  • Cách chỉnh sửa an toàn không làm sập website.
  • Các lỗi phổ biến mà người mới thường gặp.

Nếu bạn đang quản trị website WordPress hoặc muốn học cách tùy chỉnh website chuyên sâu hơn thì đây là kiến thức rất đáng để nắm vững.

File functions.php nằm ở đâu?

File functions.php trong wordpress ở đâu và có chức năng gì ?

Trong gần 10 năm thiết kế Website WordPress tại Halo Media, đội ngũ chúng tôi đã ứng dụng kiến thức về File functions.php trong WordPress ở đâu và có chức năng gì cho hơn 500 dự án khách hàng.

Hiểu đơn giản, file functions.php là nơi chứa các đoạn mã PHP giúp mở rộng chức năng của theme.

Mỗi theme WordPress đều có một file functions.php riêng.

Khi theme được kích hoạt, WordPress sẽ tự động nạp file này và thực thi toàn bộ các đoạn mã bên trong.

Cách truy cập:

  1. Thông qua Hosting hoặc File Manager.
  2. Thông qua FTP.
  3. Thông qua Theme File Editor của WordPress.

Đường dẫn phổ biến:

wp-content/themes/ten-theme/functions.php

Ví dụ nếu website đang sử dụng theme Flatsome:

/wp-content/themes/flatsome/functions.php
Ví dụ dễ hiểu:

Nếu website là một chiếc xe hơi thì:

  • Theme chính là bộ khung xe.
  • Plugin là các phụ kiện lắp thêm.
  • functions.php giống như hộp điều khiển trung tâm cho phép bạn thay đổi cách chiếc xe vận hành.

Bạn có thể thêm tính năng mới mà không cần sửa trực tiếp mã nguồn WordPress Core.

Chức năng của file functions.php

Tham khảo: WordPress Codex chính thức

File functions.php thường được gọi là “bộ não” của theme WordPress.

Đây là nơi các lập trình viên thêm các chức năng tùy chỉnh cho website.

Một số công việc phổ biến có thể thực hiện:

  • Thêm hoặc vô hiệu hóa tính năng WordPress.
  • Đăng ký menu.
  • Đăng ký widget và sidebar.
  • Tạo shortcode.
  • Thêm CSS hoặc JavaScript.
  • Can thiệp vào WooCommerce.
  • Tạo Custom Post Type.
  • Tạo Taxonomy riêng.
  • Tối ưu hiệu suất website.
  • Tùy chỉnh trang đăng nhập WordPress.

Ví dụ thực tế:

  • Tạo menu đa cấp cho website công ty.
  • Tạo khu vực “Khóa học” riêng.
  • Tự động chèn mã Google Analytics.
  • Ẩn thanh Admin Bar.
  • Tạo shortcode hiển thị hotline.
  • Tạo popup hoặc thông báo khuyến mãi.

functions.php và Plugin khác nhau như thế nào?

functions va plugin khac gi thiết kế web Halo Media

Tiêu chífunctions.phpPlugin
Độ linh hoạtCaoTrung bình
Giữ lại khi đổi themeKhông
Dễ sử dụngKhó hơnDễ hơn
Khả năng tùy chỉnhRất caoPhụ thuộc plugin

Đây là điểm mà rất nhiều người mới thường nhầm lẫn.

Nếu chức năng chỉ phục vụ cho theme hiện tại thì nên đặt trong functions.php.

Nếu muốn giữ lại chức năng khi đổi theme trong tương lai thì nên tạo plugin riêng.

Khi nào nên dùng functions.php?

Nếu bạn đang triển khai dự án website mới, tham khảo Dịch vụ thiết kế Website chuẩn SEO của Halo Media — chúng tôi đã ứng dụng các best practices trong bài này cho 500+ khách hàng.

Bạn nên sử dụng functions.php trong các trường hợp:

  • Thêm tính năng nhỏ cho website.
  • Can thiệp vào giao diện theme.
  • Tùy chỉnh WooCommerce.
  • Tạo shortcode.
  • Tối ưu hiệu suất.
  • Thêm Hook hoặc Filter.

Không nên dùng functions.php khi:

  • Code quá lớn.
  • Tính năng cần giữ lại khi đổi theme.
  • Dự án có nhiều lập trình viên cùng tham gia.
Lưu ý quan trọng:

Không nên chỉnh sửa trực tiếp functions.php của theme gốc. Hãy sử dụng Child Theme để tránh mất toàn bộ code khi cập nhật theme.

Tại sao nên chỉnh sửa functions.php trong Child Theme?

ung dung php trong wordpress thiết kế web Halo Media

Một trong những lỗi phổ biến nhất của người mới là thêm code trực tiếp vào theme chính.

Khi nhà phát triển theme phát hành bản cập nhật mới, toàn bộ code tùy chỉnh sẽ bị ghi đè và mất hoàn toàn.

Child Theme được tạo ra để giải quyết vấn đề này.

Lợi ích:

  • Không mất code khi cập nhật theme.
  • Dễ bảo trì.
  • An toàn hơn.
  • Phù hợp với website doanh nghiệp.

Đây cũng là phương pháp mà Halo Media áp dụng cho toàn bộ website khách hàng khi triển khai WordPress.

Cách thêm code vào functions.php mà không bị lỗi

  • Luôn bao code trong hàm và sử dụng hook như add_action hoặc add_filter
  • Không viết lệnh trực tiếp ngoài hàm
  • Tránh trùng tên hàm với plugin khác

Các đoạn mã functions.php hữu ích

1. Thêm menu cho theme

function custom_theme_menus() {
    register_nav_menus(array(
        'main_menu' => 'Menu chính',
        'footer_menu' => 'Menu chân trang'
    ));
}
add_action('init', 'custom_theme_menus');

2. Ẩn thanh admin bar cho người không phải quản trị

if (!current_user_can('administrator')) {
    add_filter('show_admin_bar', '__return_false');
}

3. Tắt Gutenberg (sử dụng Classic Editor)

add_filter('use_block_editor_for_post', '__return_false');

4. Shortcode hiển thị năm hiện tại

function show_current_year() {
    return date('Y');
}
add_shortcode('year', 'show_current_year');

Sử dụng: [year] trong bài viết sẽ hiển thị năm hiện tại.

5. Tạo Custom Post Type: Khóa Học

function create_custom_post_khoahoc() {
    register_post_type('khoa_hoc', array(
        'label' => 'Khóa Học',
        'public' => true,
        'supports' => array('title', 'editor', 'thumbnail'),
        'show_in_rest' => true,
        'rewrite' => array('slug' => 'khoa-hoc')
    ));
}
add_action('init', 'create_custom_post_khoahoc');

6. Tạo taxonomy “Cấp Độ” cho post type “Khóa Học”

function create_custom_taxonomy() {
    register_taxonomy('cap_do', 'khoa_hoc', array(
        'label' => 'Cấp Độ',
        'hierarchical' => true,
        'public' => true,
        'show_in_rest' => true,
        'rewrite' => array('slug' => 'cap-do')
    ));
}
add_action('init', 'create_custom_taxonomy');

7. Chèn CSS vào frontend

function custom_css_frontend() {
    echo '<style>
        body { background: #f8f8f8; }
    </style>';
}
add_action('wp_head', 'custom_css_frontend');

8. Thêm JavaScript vào footer

function custom_script_footer() {
    echo '<script>
        console.log("JS đã được thêm từ functions.php");
    </script>';
}
add_action('wp_footer', 'custom_script_footer');<br />

Lỗi thường gặp khi sửa file functions.php

loi thuong gap khi sua file function thiết kế web Halo Media

File functions.php mang lại khả năng tùy chỉnh gần như không giới hạn cho WordPress, nhưng đây cũng là nơi khiến rất nhiều website gặp sự cố nếu chỉnh sửa không đúng cách.

Trong quá trình hỗ trợ khách hàng xử lý lỗi WordPress, Halo Media nhận thấy phần lớn các trường hợp website bị trắng trang hoặc hoạt động không ổn định đều liên quan đến việc chỉnh sửa functions.php sai cách.

Trắng trang do lỗi cú pháp PHP

Đây là lỗi phổ biến nhất mà người mới thường gặp.

Chỉ cần thiếu một dấu ;, một dấu } hoặc một dấu ngoặc đơn là WordPress có thể ngừng hoạt động ngay lập tức.

Ví dụ:

function custom_text() {
   echo "Hello WordPress"
}

Đoạn code trên thiếu dấu ; sau câu lệnh echo nên sẽ gây lỗi PHP.

Khi lỗi xảy ra, website có thể xuất hiện:

  • Trang trắng hoàn toàn (White Screen of Death).
  • Lỗi HTTP 500.
  • Không thể truy cập trang quản trị WordPress.

Để hạn chế rủi ro, bạn nên sao lưu file trước khi chỉnh sửa hoặc thử nghiệm trên website staging trước khi áp dụng lên website chính.

Ghi đè code có sẵn mà không kiểm tra

Nhiều người thường sao chép các đoạn code trên Internet rồi dán trực tiếp vào functions.php mà không kiểm tra xem theme hoặc plugin hiện tại đã sử dụng chức năng tương tự hay chưa.

Điều này có thể dẫn đến:

  • Xung đột với plugin.
  • Trùng tên hàm.
  • Website hoạt động không đúng mong muốn.
  • Lỗi khi cập nhật theme hoặc plugin.

Ví dụ nếu plugin đã có hàm:

function custom_login_logo() {
   // code
}

Và bạn tiếp tục tạo một hàm cùng tên trong functions.php, WordPress sẽ báo lỗi “Cannot redeclare function”.

Vì vậy trước khi thêm code mới, hãy kiểm tra xem chức năng đó đã tồn tại hay chưa.

Không kiểm tra vai trò người dùng

phan quyen nguoi dung user trong wordpress 1 1 e1780384255983 thiết kế web Halo Media

Một lỗi khác khá phổ biến là thêm tính năng mới nhưng không giới hạn quyền truy cập.

Ví dụ bạn tạo một trang quản trị riêng hoặc một tính năng đặc biệt nhưng lại không kiểm tra quyền người dùng.

Kết quả là:

  • Người dùng thông thường có thể truy cập khu vực quản trị.
  • Dữ liệu quan trọng có nguy cơ bị thay đổi.
  • Xuất hiện lỗ hổng bảo mật.

Trước khi thực hiện các thao tác quản trị, nên kiểm tra quyền bằng các hàm như:

current_user_can('administrator')

hoặc

current_user_can('manage_options')

Đây là nguyên tắc cơ bản giúp website vận hành an toàn hơn.

Chỉnh sửa trực tiếp trên theme gốc

Nhiều quản trị viên thêm code trực tiếp vào theme chính (Parent Theme).

Tuy nhiên khi cập nhật theme, toàn bộ code tùy chỉnh sẽ bị ghi đè và mất hoàn toàn.

Đây là lý do các lập trình viên WordPress luôn khuyến nghị sử dụng Child Theme khi chỉnh sửa functions.php.

Thêm quá nhiều chức năng vào một file

Ban đầu functions.php có thể chỉ chứa vài đoạn code nhỏ. Nhưng theo thời gian, nhiều website thêm hàng chục hoặc hàng trăm đoạn code khác nhau vào cùng một file.

Kết quả là:

  • Khó quản lý.
  • Khó tìm lỗi.
  • Khó nâng cấp.
  • Khó bàn giao cho người khác.

Đối với các dự án lớn, nên tách các nhóm chức năng thành nhiều file riêng để dễ quản trị và bảo trì lâu dài.

Mẹo dùng functions.php hiệu quả

su dung function hieu qua thiết kế web Halo Media

Functions.php là công cụ rất mạnh, nhưng để sử dụng hiệu quả và an toàn, bạn nên tuân thủ một số nguyên tắc được cộng đồng WordPress áp dụng rộng rãi.

Đặt tên hàm có tiền tố riêng (Prefix)

Một trong những nguyên nhân gây xung đột phổ biến là trùng tên hàm.

Thay vì:

function custom_menu() {
}

Nên sử dụng:

function hm_custom_menu() {
}

Trong đó “hm” là viết tắt của Halo Media.

Việc thêm tiền tố giúp hạn chế tối đa khả năng trùng tên với plugin hoặc theme khác.

Luôn sử dụng Hook của WordPress

WordPress cung cấp hệ thống Hook rất mạnh gồm:

  • Action Hook.
  • Filter Hook.

Thay vì chạy code trực tiếp, hãy sử dụng:

add_action()

hoặc

add_filter()

Cách làm này giúp code dễ kiểm soát hơn và tương thích tốt với hệ sinh thái WordPress.

Không viết lệnh trực tiếp bên ngoài hàm

Một số người mới thường đặt các câu lệnh PHP chạy trực tiếp trong file functions.php.

Điều này khiến mã nguồn khó kiểm soát và dễ phát sinh lỗi ngoài ý muốn.

Thay vào đó, nên đóng gói toàn bộ logic trong hàm riêng và kích hoạt thông qua Hook phù hợp.

Tách code thành nhiều file nếu dự án lớn

Đối với website doanh nghiệp hoặc website có nhiều tính năng, functions.php không nên chứa toàn bộ mã nguồn.

Bạn có thể tạo cấu trúc như:


inc/
├── custom-post-type.php
├── custom-taxonomy.php
├── shortcode.php
├── security.php
└── optimization.php

Sau đó gọi vào functions.php:

require_once get_template_directory() . '/inc/security.php';
require_once get_template_directory() . '/inc/shortcode.php';

Cách tổ chức này giúp mã nguồn chuyên nghiệp hơn và dễ bảo trì trong nhiều năm.

Luôn sao lưu trước khi chỉnh sửa

Dù chỉ thêm một dòng code nhỏ, bạn vẫn nên tạo bản sao lưu trước khi thay đổi.

Nếu xảy ra lỗi, việc khôi phục website sẽ nhanh chóng và an toàn hơn rất nhiều.

Đây là nguyên tắc mà đội ngũ Halo Media áp dụng cho mọi dự án WordPress trước khi triển khai bất kỳ thay đổi nào liên quan đến functions.php.

Kết luận

File functions.php là một công cụ cực kỳ mạnh mẽ trong WordPress, giúp bạn tùy chỉnh và mở rộng chức năng cho theme một cách linh hoạt. Chỉ với vài dòng code đúng chuẩn, bạn đã có thể thêm tính năng, tối ưu tốc độ, giảm phụ thuộc plugin và làm chủ website của mình. Tuy nhiên, hãy luôn sao lưu trước khi chỉnh sửa. Nếu bạn làm chủ được functions.php, bạn sẽ làm chủ được cách WordPress vận hành theo đúng mục tiêu của bạn.

Bài viết cùng chủ đề

Câu hỏi thường gặp

File functions.php nằm trong thư mục của theme đang dùng, theo đường dẫn ‘wp-content/themes/[ten-theme]/functions.php’. Ví dụ theme Flatsome thì file ở ‘/wp-content/themes/flatsome/functions.php’. Bạn truy cập qua hosting (File Manager hoặc FTP) hoặc vào Giao diện > Theme File Editor trong trang quản trị WordPress.
File functions.php hoạt động như ‘bộ não lập trình’ của theme, cho phép thêm chức năng tùy chỉnh mà không cần plugin. Bạn dùng nó để đăng ký menu, widget, sidebar, tạo shortcode, thêm script/CSS, hook vào hành vi mặc định của WordPress và tạo custom post type, taxonomy cho website.
Có, lỗi cú pháp trong functions.php (thiếu dấu ‘;’ hoặc ‘}’) sẽ gây trắng trang toàn bộ website. Vì vậy hãy luôn sao lưu file trước khi chỉnh, bao code trong hàm có tiền tố riêng, dùng hook ‘add_action’ hoặc ‘add_filter’, và tránh viết lệnh trực tiếp bên ngoài hàm.
Nếu muốn giữ code khi đổi theme, hãy chuyển sang plugin thay vì viết vào functions.php, vì code trong functions.php sẽ mất khi bạn đổi theme. Dùng functions.php khi cần thêm chức năng gắn liền với theme hiện tại hoặc không muốn cài thêm plugin cho các tùy chỉnh nhỏ.
Tham khảo: Tài liệu chính thức WordPress

Bài viết & dịch vụ liên quan

Đánh giá

Bài viết liên quan

Băng Thông Là Gì? Cách Tối Ưu Website Để Tiết Kiệm Băng Thông

Khi website phát triển và lượng truy cập ngày càng tăng, nhiều chủ doanh nghiệp

Top 7 Plugin Bảo Mật Website WordPress Tốt Nhất

Trên kho WordPress.org có hàng nghìn plugin nhưng không phải plugin nào cũng đáng cài.

Top 7 Plugin Làm Forum Bằng WordPress Tốt Nhất

Xây dựng diễn đàn (forum) trên WordPress giúp tạo cộng đồng, tăng tương tác và

Top 7 Theme WordPress WooCommerce Thiết Kế Bán Hàng Đẹp Nhất

Theme là ‘bộ áo’ của website. Chọn sai theme khiến phải làm lại toàn bộ

Top 7 Theme WordPress Thiết Kế Website Tin Tức, Blog Tốt Nhất

Theme là ‘bộ áo’ của website. Chọn sai theme khiến phải làm lại toàn bộ

Source Code Là Gì? Tìm Hiểu Mã Nguồn Website Từ A-Z

Source code (mã nguồn) là tập hợp các dòng lệnh tạo nên website — hiểu

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *