Giữ tệp functions.php của bạn sạch sẽ

Giữ cho tệp functions.php của chủ đề sạch sẽ và được tổ chức tốt có nghĩa là bạn có thể làm được nhiều việc hơn với trang web WordPress của mình mà không bị mất một biển mã. Nó không khó để làm. Ngay cả khi bạn không có nhiều kinh nghiệm viết mã, bạn có thể thêm tất cả các loại chức năng mới mà không kết thúc trong một mớ hỗn độn mã spaghetti lớn.

Có rất nhiều bài báo trên mạng nói những điều như “sao chép và dán cái này vào functions.php của bạn”. Tất cả đều tốt và tốt, nhưng chẳng bao lâu nữa bạn sẽ kết thúc với một tệp functions.php dài và vô duyên. Sẽ rất khó để tìm một chức năng cụ thể khi bạn cần quay lại nó trong thời gian sáu tháng để thực hiện một số thay đổi.

Mục tiêu chính của việc viết phần mềm, đặc biệt là các hệ thống lớn hơn, là giữ cho mã của bạn được tổ chức tốt và dễ đọc. Đừng cố gắng và quá khéo léo với cách bạn đặt các tệp và chức năng lại với nhau. Đảm bảo rằng người khác sẽ có thể đọc mã của bạn và tìm đường cho họ đi qua mã đó.

Những gì chúng ta sẽ làm là chia functions.php thành nhiều tệp nhỏ hơn. Chúng tôi sẽ chỉ sử dụng functions.php như một nơi mà chúng tôi có thể gắn kết tất cả các tệp chức năng nhỏ hơn.

Nếu bạn chưa có tệp functions.php thì bạn nên tạo một chủ đề con tùy chỉnh tham chiếu đến chủ đề mẹ / mẫu. Giả sử chủ đề của chủ đề của bạn là chủ đề Mặt tiền cửa hàng. Storefront là một chủ đề mẹ tuyệt vời để xây dựng một chủ đề con xung quanh, vì bạn đang thừa hưởng một cửa hàng đang hoạt động hoàn chỉnh ngay từ đầu. Chủ đề trẻ em của bạn thực sự chỉ là sắp xếp các chi tiết nhỏ trong cửa hàng của bạn để nó trông vừa phải.

Hãy viết một số mã sạch

Có lẽ điều đầu tiên bạn sẽ muốn làm là thay đổi thông báo bản quyền trong chân trang của trang web, vì văn bản mặc định là một cái gì đó giống như "Được xây dựng với Mặt tiền cửa hàng". Đoạn mã để ghi đè phần footer / bản quyền sẽ giống như sau:
if (!function_exists('storefront_credit')) {
   function storefront_credit() {
      printf(
         'Copyright © %d Headwall Hosting',
         date('Y'),
         get_home_url()
      );
   }
}
Thay vì chỉ dán nó thẳng vào functions.php, chúng ta sẽ làm khác đi một chút. Tạo một tệp mới trong thư mục chủ đề con của bạn có tên là functions-storefront.php và thiết lập nó như sau:
/**
 * functions-storefront.php
 *
 * Override default Storefront (parent) theme functions, filters and actions in here.
 */
// Block direct access.
if (!defined('WPINC')) {
   exit('Do NOT access this file directly.');
}
/**
 * Set the site's copyright notice in the footer area.
 */
if (!function_exists('storefront_credit')) {
   function storefront_credit() {
      printf(
         'Copyright © %d Headwall Hosting',
         date('Y'),
         esc_url(get_home_url())
      );
   }
}
Bây giờ, hãy tạo một tệp khác có tên là settings.php và dán tệp này vào đó.
/**
 * settings.php
 *
 * Global settings for my child theme.
 */
// Block direct access.
if (!defined('WPINC')) {
   exit('Do NOT access this file directly.');
}
// Settings go in here...
// ...
Cuối cùng, thiết lập tệp functions.php của bạn để nó trông giống như thế này…
/**
 * FILE: functions.php
 *
 * Custom functions for my child theme.
 */
// Block direct access.
if (!defined('WPINC')) {
   exit('Do NOT access this file directly.');
}
require_once 'settings.php';
// Other functions files can go here...
require_once 'functions-storefront.php';
// require_once 'functions-shortcodes.php';
// require_once 'functions-rest-api.php';
// ...
function custom_enqueue_scripts() {
   $theme_version = wp_get_theme()->get('Version');
   $base_uri = get_stylesheet_directory_uri();
   wp_enqueue_style('child-style', $base_uri . '/style.css', false, $theme_version);
   // You can add additional JavaScript CSS files here...
   // wp_enqueue_style('my-post-styles', $base_uri . '/post.css', array('child-style'), $theme_version);
   // wp_enqueue_style('my-shop-styles', $base_uri . '/shop.css', array('child-style'), $theme_version);
}
add_action('wp_enqueue_scripts', 'custom_enqueue_scripts');
Các functions.php của bạn hiện đã sạch sẽ, có cấu trúc tốt và các hàm & hook WordPress khác nhau của bạn được chia thành các tệp nhỏ hơn,. Khi bạn quay lại mã của mình ở một nơi nào đó, bạn sẽ thấy mã của mình bây giờ dễ điều hướng hơn nhiều.