Kiến thức Hữu ích 😍

Thêm Mã Trong WordPress: Hướng Dẫn An Toàn & Dễ Làm


Bạn muốn tùy chỉnh website WordPress của mình để thêm một tính năng độc đáo hay thay đổi một chi tiết nhỏ nhưng lại không biết bắt đầu từ đâu? Việc chỉnh sửa trực tiếp các tệp tin của theme có vẻ là một giải pháp nhanh chóng, nhưng nó tiềm ẩn nhiều rủi ro như gây lỗi toàn bộ trang web, mất các thay đổi khi cập nhật theme, và khó khăn trong việc quản lý. Đây là một vấn đề mà rất nhiều người dùng WordPress là gì, từ mới bắt đầu đến đã có kinh nghiệm, đều gặp phải.

Giải pháp tối ưu, an toàn và chuyên nghiệp hơn chính là sử dụng các đoạn mã (code snippet). Phương pháp này cho phép bạn thêm các hàm PHP tùy chỉnh vào trang web một cách linh hoạt mà không cần can thiệp vào mã nguồn gốc của theme. Bài viết này sẽ là kim chỉ nam của bạn, giới thiệu chi tiết về vai trò của đoạn mã, lý do tại sao bạn nên tránh chỉnh sửa trực tiếp tệp theme, so sánh các phương pháp thêm đoạn mã phổ biến, và cung cấp hướng dẫn từng bước để bạn có thể tự tin tùy biến website của mình một cách hiệu quả và an toàn nhất.

Tại sao cần thêm đoạn mã thay vì chỉnh sửa file theme trực tiếp?

Hiểu rõ sự khác biệt giữa việc thêm một đoạn mã tùy chỉnh và chỉnh sửa trực tiếp tệp functions.php của theme là chìa khóa để quản lý một website WordPress bền vững và an toàn. Mặc dù cả hai cách đều có thể đạt được cùng một kết quả, nhưng phương pháp bạn chọn sẽ ảnh hưởng lớn đến hiệu suất, bảo mật và khả năng bảo trì của trang web trong tương lai.

Vai trò của đoạn mã trong WordPress

Đoạn mã trong WordPress là những đoạn mã PHP nhỏ, thực hiện một chức năng cụ thể. Chúng hoạt động như những “trợ thủ” đắc lực, cho phép bạn mở rộng hoặc thay đổi các tính năng mặc định của WordPress mà không cần phải cài đặt plugin nặng nề. Hãy tưởng tượng website của bạn là một ngôi nhà. Việc cài một plugin lớn giống như xây thêm cả một căn phòng mới, trong khi thêm một đoạn mã chỉ giống như treo một bức tranh hay lắp một chiếc đèn trang trí.

Đây là giải pháp cực kỳ linh hoạt cho những thay đổi nhỏ và nhanh chóng. Bạn muốn thay đổi số lượng bài viết hiển thị trên trang chủ? Vô hiệu hóa một tính năng không cần thiết để tăng tốc độ? Hay thêm một dòng thông báo nhỏ ở đầu trang? Tất cả đều có thể được thực hiện chỉ với vài dòng mã. Việc sử dụng đoạn mã giúp giữ cho website của bạn tinh gọn, giảm thiểu số lượng plugin không cần thiết, từ đó cải thiện tốc độ tải trang và giảm nguy cơ xung đột.

Rủi ro khi chỉnh sửa trực tiếp file theme

Chỉnh sửa trực tiếp tệp functions.php của theme, đặc biệt là theme mà bạn đã mua hoặc tải về, là một thói quen không được khuyến khích vì nhiều lý do nghiêm trọng.

Đầu tiên và quan trọng nhất là mất tùy biến khi cập nhật theme. Mỗi khi nhà phát triển phát hành một phiên bản mới của theme để vá lỗi bảo mật hoặc thêm tính năng, việc cập nhật sẽ ghi đè lên tất cả các tệp tin gốc, bao gồm cả tệp functions.php. Điều này đồng nghĩa với việc mọi công sức chỉnh sửa, thêm mã của bạn sẽ biến mất chỉ sau một cú nhấp chuột cập nhật. Bạn sẽ phải thực hiện lại tất cả các thay đổi từ đầu, một công việc tốn thời gian và dễ gây sai sót.

Thứ hai, nguy cơ gây lỗi và ảnh hưởng đến hiệu suất website là rất cao. Chỉ một lỗi cú pháp nhỏ, như thiếu một dấu chấm phẩy hoặc một dấu ngoặc, trong tệp functions.php cũng có thể gây ra lỗi “Màn hình trắng chết chóc” (White Screen of Death), khiến toàn bộ website của bạn không thể truy cập được. Việc tìm và sửa lỗi trong một tệp tin chứa đầy mã có thể là một cơn ác mộng, đặc biệt đối với người không chuyên.

Cuối cùng, việc này gây khó khăn cho việc quản lý và sao lưu. Khi bạn thêm nhiều đoạn mã khác nhau vào cùng một tệp functions.php, theo thời gian, bạn sẽ khó nhớ được đoạn mã nào dùng để làm gì. Việc gỡ bỏ hay tạm thời vô hiệu hóa một tính năng cụ thể sẽ trở nên phức tạp. Ngược lại, sử dụng các công cụ quản lý đoạn mã chuyên dụng giúp bạn dễ dàng theo dõi, ghi chú, và bật/tắt từng đoạn mã một cách độc lập.

Các cách thêm đoạn mã trong WordPress

Khi đã hiểu rõ lợi ích của việc sử dụng đoạn mã, câu hỏi tiếp theo là: “Làm thế nào để thêm chúng vào website một cách đúng đắn?”. Có hai phương pháp chính được cộng đồng WordPress tin dùng, mỗi phương pháp đều có những ưu và nhược điểm riêng, phù hợp với các đối tượng người dùng khác nhau. Lựa chọn đúng phương pháp sẽ giúp bạn quản lý website hiệu quả hơn.

Hình minh họa

Thêm đoạn mã bằng plugin hỗ trợ

Đây là phương pháp được khuyến khích mạnh mẽ cho hầu hết người dùng, từ người mới bắt đầu cho đến các nhà phát triển chuyên nghiệp, vì tính an toàn và tiện lợi của nó. Các plugin này tạo ra một giao diện quản lý tập trung, nơi bạn có thể thêm, chỉnh sửa, kích hoạt hoặc vô hiệu hóa các đoạn mã một cách dễ dàng mà không cần chạm vào bất kỳ tệp tin nào của theme.

Các plugin phổ biến và được đánh giá cao nhất trong lĩnh vực này bao gồm Code Snippets và WPCode (trước đây là Insert Headers and Footers). Chúng hoạt động độc lập với theme bạn đang sử dụng. Điều này có nghĩa là bạn có thể thoải mái cập nhật hay thậm chí thay đổi theme mà không lo bị mất các đoạn mã tùy chỉnh của mình.

Ưu điểm vượt trội của việc dùng plugin là sự an toàn. Nhiều plugin có sẵn cơ chế kiểm tra lỗi cú pháp PHP cơ bản. Nếu bạn dán một đoạn mã bị lỗi, plugin sẽ cảnh báo hoặc tự động vô hiệu hóa đoạn mã đó để ngăn website của bạn bị sập. Hơn nữa, bạn có thể dễ dàng sắp xếp các đoạn mã theo tên, mô tả và bật/tắt chúng chỉ bằng một cú nhấp chuột, giống như quản lý các plugin thông thường.

Thêm đoạn mã bằng chỉnh sửa file functions.php

Phương pháp này mang tính “truyền thống” hơn và yêu cầu người dùng phải có một chút kiến thức kỹ thuật. Tệp functions.php là một tệp tin đặc biệt trong thư mục theme của bạn, hoạt động như một plugin dành riêng cho theme đó. Bất kỳ mã PHP hợp lệ nào được thêm vào tệp này sẽ được thực thi khi website tải.

Để truy cập và chỉnh sửa tệp functions.php, bạn có thể vào phần Giao diện (Appearance) > Trình sửa file giao diện (Theme File Editor) ngay trong trang quản trị WordPress. Tuy nhiên, cách này không được khuyến khích vì nếu bạn mắc lỗi, bạn có thể bị khóa khỏi trang quản trị của chính mình. Một cách an toàn hơn là truy cập thông qua một trình quản lý tệp trong cPanel của dịch vụ hosting hoặc sử dụng một client FTP (như FileZilla) để kết nối với máy chủ.

Hình minh họa

Ưu điểm chính của phương pháp này là bạn không cần cài thêm một plugin nào khác, giúp website nhẹ đi một chút. Tuy nhiên, nhược điểm của nó lại rất lớn như đã phân tích ở phần trước: dễ gây lỗi, mất thay đổi khi cập nhật theme, và khó quản lý. Phương pháp này chỉ nên được sử dụng khi bạn đang phát triển một theme con (child theme) hoặc hoàn toàn tự tin vào khả năng xử lý mã của mình.

Hướng dẫn chi tiết thêm đoạn mã trong WordPress

Bây giờ chúng ta sẽ đi vào phần thực hành. Dưới đây là hướng dẫn từng bước cho cả hai phương pháp: sử dụng plugin Code Snippets (khuyến khích) và chỉnh sửa trực tiếp tệp functions.php (dành cho người dùng nâng cao). Hãy làm theo cẩn thận để đảm bảo quá trình diễn ra suôn sẻ.

Hướng dẫn thêm đoạn mã qua plugin Code Snippets

Đây là cách an toàn và dễ dàng nhất. Plugin Code Snippets miễn phí và rất mạnh mẽ.

Bước 1: Cài đặt và kích hoạt plugin

  • Từ trang quản trị WordPress, điều hướng đến Gói mở rộng (Plugins) > Cài mới (Add New).
  • Trong ô tìm kiếm, gõ “Code Snippets”.
  • Tìm plugin có tên “Code Snippets” của tác giả Code Snippets Pro, sau đó nhấn Cài đặt (Install Now) và chờ quá trình hoàn tất.
  • Sau khi cài đặt xong, nhấn nút Kích hoạt (Activate).

Hình minh họa

Bước 2: Tạo một đoạn mã mới (Snippet)

  • Sau khi kích hoạt, bạn sẽ thấy một mục mới có tên Snippets trong menu bên trái của trang quản trị. Hãy nhấp vào đó và chọn Thêm mới (Add New).
  • Giao diện thêm snippet mới rất trực quan. Đầu tiên, hãy đặt một tiêu đề dễ nhớ cho đoạn mã của bạn ở ô trên cùng, ví dụ: “Vô hiệu hóa XML-RPC”. Tiêu đề này chỉ dùng để bạn quản lý, không ảnh hưởng đến hoạt động của mã.

Hình minh họa

Bước 3: Nhập mã và cấu hình

  • Bên dưới tiêu đề là một trình soạn thảo mã lớn. Đây là nơi bạn sẽ dán đoạn mã PHP của mình. Hãy chắc chắn rằng bạn sao chép toàn bộ mã và không bao gồm các thẻ <?php mở đầu, vì plugin sẽ tự động xử lý việc này.
  • Bên dưới trình soạn thảo, bạn sẽ có các tùy chọn về phạm vi hoạt động của đoạn mã:
    • Run snippet everywhere: Chạy mã ở cả trang quản trị và trang công khai. Đây là lựa chọn phổ biến nhất.
    • Only run in administration area: Chỉ chạy mã trong khu vực quản trị.
    • Only run on site front-end: Chỉ chạy mã ở trang mà người dùng nhìn thấy.
  • Bạn cũng có thể thêm mô tả chi tiết và gán thẻ (tag) để dễ dàng tìm kiếm và quản lý sau này.

Bước 4: Lưu và Kích hoạt

  • Sau khi đã dán mã và cấu hình xong, hãy nhấn nút Lưu thay đổi và Kích hoạt (Save Changes and Activate).
  • Đoạn mã của bạn sẽ ngay lập tức có hiệu lực. Nếu bạn chỉ muốn lưu lại mà chưa muốn nó hoạt động, hãy chọn Lưu thay đổi (Save Changes).

Hình minh họa

Bước 5: Quản lý các đoạn mã

  • Để xem lại tất cả các đoạn mã bạn đã thêm, hãy vào Snippets > Tất cả Snippets (All Snippets).
  • Tại đây, bạn có thể thấy một danh sách đầy đủ, cùng với các nút chuyển đổi để nhanh chóng bật hoặc tắt bất kỳ đoạn mã nào mà không cần xóa nó. Giao diện này giúp việc gỡ lỗi và quản lý các tùy chỉnh trở nên vô cùng đơn giản.

Hướng dẫn thêm đoạn mã trực tiếp trong file functions.php

Cảnh báo: Phương pháp này có rủi ro cao. Một sai sót nhỏ có thể làm hỏng website của bạn. Hãy đảm bảo bạn đã sao lưu toàn bộ trang web trước khi tiếp tục.

Bước 1: Sao lưu (Backup) website

  • Đây là bước bắt buộc. Hãy sử dụng một plugin sao lưu như UpdraftPlus hoặc sử dụng tính năng sao lưu có sẵn từ nhà cung cấp hosting của bạn (AZWEB cung cấp công cụ sao lưu tự động cho khách hàng). Tạo một bản sao lưu đầy đủ cả tệp tin và cơ sở dữ liệu.

Bước 2: Truy cập file functions.php

  • Cách tốt nhất là sử dụng FTP hoặc trình quản lý tệp của hosting.
  • Đăng nhập vào tài khoản hosting của bạn, tìm đến Trình quản lý Tệp (File Manager).
  • Điều hướng đến thư mục cài đặt WordPress của bạn, thường là public_html.
  • Đi theo đường dẫn: wp-content/themes/ten-theme-dang-dung/functions.php. (ten-theme-dang-dung là tên thư mục của theme bạn đang kích hoạt).
  • Nhấp chuột phải vào tệp functions.php và chọn Edit hoặc Code Edit.

Hình minh họa

Bước 3: Thêm mã và lưu lại

  • Trình soạn thảo mã sẽ mở ra. Hãy cuộn xuống cuối cùng của tệp.
  • Dán đoạn mã của bạn vào cuối tệp, ngay trước thẻ đóng ?> (nếu có). Nếu tệp không có thẻ này, chỉ cần dán vào dòng cuối cùng.
  • Hãy kiểm tra lại mã một lần nữa để chắc chắn không có lỗi cú pháp.
  • Nhấn nút Lưu thay đổi (Save Changes).

Bước 4: Kiểm tra lại website

  • Ngay sau khi lưu, hãy mở website của bạn trong một tab ẩn danh hoặc một trình duyệt khác.
  • Tải lại trang vài lần và kiểm tra xem chức năng bạn vừa thêm có hoạt động không, đồng thời đảm bảo không có lỗi nào phát sinh trên trang web. Nếu website gặp lỗi “màn hình trắng”, bạn cần truy cập lại trình quản lý tệp, xóa đoạn mã vừa thêm và lưu lại để khôi phục.

Lưu ý quan trọng khi thêm đoạn mã

Việc thêm mã tùy chỉnh mang lại sức mạnh to lớn để định hình website theo ý muốn, nhưng “quyền lực lớn đi kèm với trách nhiệm lớn”. Để đảm bảo quá trình này luôn an toàn và hiệu quả, bạn cần tuân thủ một số nguyên tắc vàng. Bỏ qua những lưu ý này có thể dẫn đến những hậu quả không mong muốn như website ngừng hoạt động, dữ liệu bị tổn hại hoặc lỗ hổng bảo mật.

Tránh gây lỗi và downtime cho website

Downtime (thời gian website không thể truy cập) là kẻ thù của mọi chủ sở hữu trang web. Nó không chỉ gây khó chịu cho người dùng mà còn có thể ảnh hưởng tiêu cực đến thứ hạng SEO của bạn.

  • Luôn sao lưu trước khi thêm mã: Đây là quy tắc không bao giờ được phép quên. Dù bạn tự tin đến đâu, một bản sao lưu đầy đủ sẽ là chiếc phao cứu sinh khi có sự cố xảy ra. Chỉ cần một vài cú nhấp chuột để khôi phục lại trang web về trạng thái ổn định trước đó.
  • Kiểm tra cú pháp và tính tương thích: Trước khi dán mã vào website, bạn có thể sử dụng một công cụ kiểm tra cú pháp PHP trực tuyến. Điều này giúp phát hiện các lỗi cơ bản như thiếu dấu chấm phẩy hay dấu ngoặc. Ngoài ra, hãy đảm bảo đoạn mã bạn sử dụng tương thích với phiên bản PHP mà máy chủ của bạn đang chạy.
  • Thử nghiệm trên môi trường Staging nếu có: Một môi trường staging là một bản sao chính xác của website đang hoạt động của bạn nhưng không công khai. Đây là nơi lý tưởng để thử nghiệm mọi thay đổi lớn, bao gồm cả việc thêm các đoạn mã phức tạp. Bạn có thể thoải mái thử nghiệm, sửa lỗi mà không sợ ảnh hưởng đến người dùng thật. Nhiều nhà cung cấp hosting chất lượng cao, như AZWEB, cung cấp tính năng tạo staging site chỉ bằng một cú nhấp chuột.

Hình minh họa

Đảm bảo an toàn và bảo mật

Một đoạn mã không an toàn có thể mở ra “cửa sau” cho tin tặc xâm nhập vào website của bạn, đánh cắp dữ liệu hoặc phá hoại. Vì vậy, bảo mật là yếu tố phải được đặt lên hàng đầu.

  • Không thêm đoạn mã từ nguồn không rõ ràng: Chỉ sử dụng các đoạn mã từ những nguồn đáng tin cậy như kho lưu trữ plugin chính thức của WordPress.org, các blog lập trình uy tín, hoặc các diễn đàn hỗ trợ có tên tuổi. Hãy cảnh giác với các đoạn mã được chia sẻ trên các trang web lạ hoặc trong các bình luận không được kiểm duyệt. Nếu bạn không hiểu đoạn mã đó làm gì, tốt nhất đừng sử dụng nó.
  • Giới hạn quyền truy cập khi dùng plugin: Nếu bạn sử dụng plugin quản lý đoạn mã, hãy đảm bảo rằng chỉ có quản trị viên (Administrator) mới có quyền thêm hoặc chỉnh sửa mã. Phân quyền người dùng đúng cách giúp ngăn chặn các tài khoản có quyền thấp hơn vô tình hoặc cố ý thêm mã độc hại.
  • Cập nhật plugin và theme thường xuyên: Luôn giữ cho WordPress core, các plugin (bao gồm cả plugin quản lý snippet) và theme của bạn ở phiên bản mới nhất. Các bản cập nhật không chỉ mang đến tính năng mới mà còn chứa các bản vá lỗi bảo mật quan trọng, giúp bảo vệ website của bạn khỏi các lỗ hổng đã được biết đến.

Ví dụ thực tế các đoạn mã phổ biến tùy chỉnh WordPress

Lý thuyết sẽ dễ hiểu hơn khi đi kèm với thực hành. Dưới đây là một số đoạn mã hữu ích và phổ biến mà bạn có thể áp dụng ngay cho website của mình. Những ví dụ này không chỉ giúp bạn giải quyết các vấn đề thường gặp mà còn cho thấy sức mạnh của việc tùy chỉnh bằng mã.

1. Thay đổi số lượng bài viết hiển thị trên trang chủ và trang lưu trữ

Mặc định, WordPress cho phép bạn cài đặt một số lượng bài viết chung cho tất cả các trang danh sách. Đoạn mã này cho phép bạn tùy chỉnh số lượng bài viết cho từng loại trang cụ thể (ví dụ: trang chủ, trang chuyên mục, trang tìm kiếm).

function azweb_custom_posts_per_page( $query ) {
    if ( ! is_admin() && $query->is_main_query() ) {
        // Thay đổi số bài viết trên trang chủ
        if ( $query->is_home() ) {
            $query->set( 'posts_per_page', 6 );
        }
        // Thay đổi số bài viết trên trang chuyên mục
        if ( $query->is_category() ) {
            $query->set( 'posts_per_page', 12 );
        }
    }
}
add_action( 'pre_get_posts', 'azweb_custom_posts_per_page' );

2. Vô hiệu hóa tính năng XML-RPC

XML-RPC là một giao thức cho phép các ứng dụng bên ngoài tương tác với WordPress của bạn. Tuy nhiên, nó cũng là một mục tiêu tấn công phổ biến. Nếu bạn không sử dụng các ứng dụng như Jetpack hoặc ứng dụng di động WordPress, việc vô hiệu hóa nó sẽ giúp tăng cường bảo mật.

add_filter( 'xmlrpc_enabled', '__return_false' );

Hình minh họa

3. Xóa thông tin phiên bản WordPress

Mặc định, WordPress hiển thị phiên bản hiện tại trong mã nguồn HTML. Tin tặc có thể lợi dụng thông tin này để khai thác các lỗ hổng đã biết của phiên bản đó. Đoạn mã sau sẽ giúp ẩn thông tin này đi.

function azweb_remove_wp_version() {
    return '';
}
add_filter('the_generator', 'azweb_remove_wp_version');

4. Cho phép tải lên các loại tệp tin khác (ví dụ: SVG)

WordPress giới hạn các loại tệp tin bạn có thể tải lên vì lý do bảo mật. Tuy nhiên, đôi khi bạn cần tải lên các định dạng tệp như SVG cho logo. Đoạn mã này sẽ cho phép điều đó. (Lưu ý: hãy đảm bảo các tệp SVG bạn tải lên là an toàn).

function azweb_add_mime_types($mimes) {
  $mimes['svg'] = 'image/svg+xml';
  return $mimes;
}
add_filter('upload_mimes', 'azweb_add_mime_types');

5. Tùy chỉnh logo trên trang đăng nhập

Thay thế logo WordPress mặc định bằng logo thương hiệu của bạn trên trang đăng nhập sẽ giúp tăng tính chuyên nghiệp.

function azweb_custom_login_logo() { ?>
    <style type="text/css">
        #login h1 a, .login h1 a {
            background-image: url(<?php echo get_stylesheet_directory_uri(); ?>/images/custom-logo.png);
            height:100px;
            width:300px;
            background-size: 300px 100px;
            background-repeat: no-repeat;
            padding-bottom: 30px;
        }
    </style>
<?php }
add_action( 'login_enqueue_scripts', 'azweb_custom_login_logo' );

Lưu ý: Bạn cần tải tệp custom-logo.png vào thư mục images bên trong thư mục theme của bạn.

Tổng kết và lời khuyên khi sử dụng đoạn mã trong WordPress

Chúng ta đã cùng nhau đi qua một hành trình chi tiết, từ việc hiểu rõ tầm quan trọng của các đoạn mã cho đến cách thức triển khai chúng một cách an toàn và hiệu quả trên website WordPress. Việc tùy chỉnh website không còn là một điều gì đó quá phức tạp hay đáng sợ nếu bạn nắm vững các nguyên tắc và công cụ phù hợp.

Điểm mấu chốt cần nhớ là ưu tiên sử dụng plugin quản lý đoạn mã như Code Snippets hoặc WPCode. Phương pháp này không chỉ giúp bạn tránh được những rủi ro khi chỉnh sửa trực tiếp tệp theme mà còn mang lại một giao diện quản lý trực quan, an toàn và linh hoạt. Bạn có thể dễ dàng bật, tắt, và theo dõi các tùy chỉnh của mình mà không sợ bị mất chúng sau mỗi lần cập nhật. Bên cạnh đó, hãy luôn ghi nhớ quy tắc vàng: luôn sao lưu website trước khi thực hiện bất kỳ thay đổi nào liên quan đến mã nguồn và kiểm tra kỹ lưỡng mọi thứ trên môi trường thử nghiệm (staging) nếu có thể.

Giờ đây, bạn đã được trang bị đầy đủ kiến thức cần thiết. Đừng ngần ngại, hãy thử áp dụng ngay những đoạn mã đơn giản mà chúng tôi đã chia sẻ trong bài viết để bắt đầu tùy chỉnh website của mình. Bắt đầu từ những thay đổi nhỏ sẽ giúp bạn dần tự tin hơn và hiểu sâu hơn về cách WordPress hoạt động.

Đây mới chỉ là bước khởi đầu trên con đường làm chủ WordPress. Khi đã thành thạo với các đoạn mã cơ bản, bạn có thể tiếp tục khám phá các khái niệm nâng cao hơn như “hooks” (actions và filters), hoặc thậm chí tự tạo ra một plugin dành riêng cho website của mình. Cộng đồng WordPress rất rộng lớn và luôn có vô số tài nguyên để bạn học hỏi và phát triển kỹ năng mỗi ngày. AZWEB sẽ luôn đồng hành cùng bạn, cung cấp những giải pháp và kiến thức cần thiết để hành trình xây dựng và phát triển website của bạn luôn thuận lợi và thành công.

Đánh giá