Tìm hiểu về Custom Fields (Trường tùy chỉnh)

LongDoTe

🖥️
Thành viên BQT
Mê Phim
1,329
76
48
Custom Fields (Trường Tùy chỉnh) là cặp bài trùng không thể thiếu với Custom Post Types (CPT). Nếu CPT định nghĩa loại nội dung, thì Custom Fields định nghĩa dữ liệu cụ thể mà nội dung đó cần lưu trữ.
Dưới đây là tổng quan chi tiết về Custom Fields và cách bạn có thể sử dụng chúng.

Custom Fields (Trường Tùy chỉnh) là gì?

Custom Fields (còn gọi là Post Meta) là một tính năng của WordPress cho phép bạn thêm dữ liệu siêu dữ liệu (metadata) vào một bài đăng, trang, hoặc Custom Post Type. Dữ liệu này được lưu trữ trong bảng wp_postmeta của cơ sở dữ liệu.
Mục tiêu là lưu trữ thông tin không nằm trong các trường mặc định của WordPress (như Tiêu đề hoặc Nội dung).

Ví dụ minh họa

CPTDữ liệu Cần lưu trữ (Custom Field)Tên Field Key (ví dụ)
Sản phẩmGiá, Tình trạng kho, Kích cỡproduct_price, stock_status, size
Bất động sảnDiện tích, Số phòng ngủ, Tình trạng pháp lýarea_sqm, bedrooms, legal_status
Phim ảnhĐạo diễn, Điểm đánh giá (Rating), Thời lượngdirector_name, imdb_rating, duration_minutes

🛠Cách tạo và quản lý Custom Fields

Mặc dù WordPress có hỗ trợ sẵn tính năng Custom Fields cơ bản (bằng cách kích hoạt ở mục Screen Options khi chỉnh sửa bài viết), nhưng để tạo các trường dữ liệu phức tạp và thân thiện với người dùng, chúng ta nên dùng Plugin.

Plugin đề xuất: Advanced Custom Fields (ACF)

Advanced Custom Fields (ACF) là Plugin tiêu chuẩn trong ngành WordPress để tạo và quản lý Custom Fields một cách dễ dàng và mạnh mẽ.

1. Các bước sử dụng ACF

  1. Cài đặt và Kích hoạt Plugin Advanced Custom Fields.
  2. Truy cập Custom Fields > Field Groups.
  3. Tạo Field Group mới: Đây là nơi bạn nhóm các trường dữ liệu liên quan lại với nhau.
    • Thêm Fields (Trường):
      • Chọn Field Label (Tên hiển thị: Giá sản phẩm).
      • Chọn Field Name (Tên kỹ thuật: product_price).
      • Chọn Field Type (Kiểu dữ liệu: Number, Text, Image, Repeater, v.v.).
    • Thiết lập Rules (Quy tắc): Quan trọng nhất! Bạn định nghĩa Field Group này sẽ xuất hiện ở đâu.
      • Ví dụ: Hiển thị nếu Post Typeproduct.

2. Các kiểu Field Types phổ biến trong ACF

ACF cung cấp nhiều kiểu dữ liệu, giúp nhập liệu dễ dàng hơn:
  • Text / Text Area: Văn bản ngắn hoặc dài.
  • Number / Email / URL: Dữ liệu có định dạng cụ thể.
  • Image / File: Cho phép tải lên hình ảnh hoặc tệp và trả về ID hoặc URL của tệp đó.
  • True/False (Checkbox): Cho các tùy chọn có/không.
  • Relationship / Post Object: Cho phép liên kết một bài viết/CPT này với một bài viết/CPT khác (ví dụ: liên kết phim với diễn viên).
  • Repeater (Bản Pro): Cho phép tạo các nhóm trường lặp lại (ví dụ: danh sách các thông số kỹ thuật không giới hạn cho một sản phẩm).

Cách hiển thị Custom Fields trong Theme

Sau khi tạo Custom Fields, bước tiếp theo là hiển thị dữ liệu đó trên giao diện người dùng (Frontend). Việc này yêu cầu bạn chỉnh sửa các tệp Template của Theme (thường là trong Child Theme).

1. Hiển thị Giá trị đơn giản

Bạn sẽ sử dụng các hàm của ACF để lấy dữ liệu dựa trên Field Name (Slug).
Ví dụ: Để hiển thị giá trị của trường product_price:
PHP
Mã:
<?php 
// Kiểm tra xem dữ liệu có tồn tại không
if ( get_field('product_price') ) {
    echo 'Giá: ' . get_field('product_price') . ' VNĐ';
}
?>

2. Sử dụng hàm the_field()

Hàm này đơn giản hơn, nó sẽ trực tiếp in (echo) giá trị ra màn hình.
PHP
Mã:
<?php 
// Hiển thị trực tiếp giá trị
the_field('director_name'); 
?>

3. Hiển thị hình ảnh (Image Field)

Nếu bạn sử dụng kiểu Image, bạn có thể chỉ định định dạng trả về (ID, URL, hoặc Array). Nếu trả về Array, bạn sẽ truy cập các thuộc tính của hình ảnh như sau:
PHP
Mã:
<?php 
$image = get_field('property_image'); 
if ( $image ) {
    // Hiển thị hình ảnh với alt text và URL
    echo '<img src="' . esc_url($image['url']) . '" alt="' . esc_attr($image['alt']) . '" />';
}
?>

Tóm lại:
  • CPT giúp bạn cấu trúc các loại nội dung.
  • Custom Fields (ACF) giúp bạn lưu trữ các dữ liệu chi tiết, đặc thù cho từng loại nội dung đó.
 
Back
Top