Hướng dẫn sử dụng ACF (ADVANCED CUSTOM FIELD) toàn tập

 

Tại sao nên dùng ACF?

ACF là một plugin mà rất nhiều lập trình viên Wordpress trên thế giới đang dùng và khuyên dùng vì nó sẽ rút ngắn được thời gian tạo metabox chỉ một vài cú click chuột, thậm chí cách gọi custom field của nó để hiển thị ra ngoài theme cũng rất nhanh chóng.

Chỉ cần biết sử dụng Wordpress ở mức căn bản và một chút về PHP là bạn có thể sử dụng thành thạo công cụ này như một chuyên gia.

Hơn nữa, plugin này hay ở chỗ còn cho phép chúng ta import(export) các field mà bạn đã tạo thành code riêng, sau đó bạn có thể dễ dàng nhúng chúng vào bất cứ dự án nào.

Cho đến thời điểm này thì đây vẫn là plugin chuyên về Custom Field tốt nhất và có nhiều addon nhất nên bạn sẽ thấy choáng ngộp với số lượng các addon của nó, đủ để bạn làm bất cứ điều gì liên quan đến custom field. Để xem các addon các bạn có thể vào đây hoặc tìm kiếm plugin ở đây với từ khóa “Advanced Custom Field” là ra rất nhiều.

Hoặc thậm chí nâng cao hơn bạn có thể tự viết Addon cho ACF, đáp ứng tốt nhất cho dự án của mình. Hướng dẫn viết addon cho ACF mình sẽ ghi trong bài sau.

Hướng dẫn ACF

Mặc dù mình hướng dẫn ở đây nhưng chắc chắn sẽ không đầy đủ vì mình chỉ đi vào phần trọng tâm, do đó hãy đọc thêm ACF Documentation để hiểu rõ hơn về plugin này nhé.

Làm quen với ACF

Link tải plugin

Sau khi cài đặt xong bạn vào Dashboard >> Custom Fields >> Custom Fields để tạo field và quản lý các field đã tạo. Ở đây bạn sẽ tạo field theo từng nhóm (group) bởi vì nó sẽ hiển thị theo nhóm trong khu vực viết bài.

Ấn nút Add New để bắt đầu tạo field.

Ở trong trang tạo field bạn sẽ có tất cả là 4 khu vực chính bao gồm:

  • Tên nhóm (Enter title here).
  • Danh sách các field.
  • Location, ở đây có một tùy chọn Rules để bạn thiết lập các điều kiện. Kiểu như bạn sẽ thiết lập nó sẽ hiển thị và làm việc nếu nó thỏa mãn điều kiện nào đó.
  • Options – bao gồm các tùy chọn nâng cao, mình sẽ giải thích rõ hơn sau.

Cách tạo một nhóm field

Khi vào phần tạo field, bạn sẽ cần điền tên nhóm field trước, đây chỉ là tên nhóm để bạn dễ dàng quản lý sau này chứ không phải là tên field nhé, bạn có thể đặt sao cũng được. Ví dụ: Field phần mềm

Ở dưới phần danh sách field, bạn ấn vào nút Add Field để bắt đầu thêm một field vào nhóm.

 

 

Một cửa sổ nhỏ đột ngột sổ ra, nó sẽ có các tùy chọn sau:

  • Field Label: Tên field hiển thị trong phần nhập liệu.
  • Field Name: Tên của field, để bạn gọi ra ngoài, không chứa ký tự đặc biệt và khoảng trắng. Thường nó sẽ tự xác định dựa vào Field Label.
  • Field Type: Loại field, hay còn gọi là Kiểu nhập liệu. Bạn xem danh sách giải nghĩa các field type mình ghi phía dưới để hiểu rõ hơn.
  • Field Introductions: Giới thiệu về field, nó sẽ hiển thị ngay bên dưới khung nhập liệu khi viết bài.
  • Required: Có bắt buộc phải nhập liệu cho field này khi viết bài hay không. Yes or Lo, nhầm, No.
  • Default Value: Giá trị mặc định sẽ áp dụng nếu người dùng không nhập liệu cho field.
  • Placeholder Text: Chữ sẽ hiển thị ngay bên trong khung nhập liệu nhưng nó sẽ mờ đi và mất khi gõ giá trị vào.
  • Prepend: Chữ sẽ hiển thị ngay trước khung nhập field.
  • Append: Giống prepend nhưng nó nằm ở phía sau.
  • Formatting: Có cho phép thực thi HTML từ giá trị hay không. Để nguyên là đẹp.
  • Character Limit: Giới hạn ký tự của giá trị nhập vào.
  • Conditional Logic: Thêm các điều kiện dựa vào các field khác. Ví dụ như field A có giá trị là abc thì sẽ hiển thị field hiện tại.

Nhập xong bạn có thể tiếp tục ấn nút Add Field để thêm các field khác.

Phần Location cũng khá đơn giản, bạn có thể xem qua các tùy chọn ở đó để thiết lập phù hợp. Nếu bạn tạo custom field cho Post, chỉ cần để mặc định.

Phần Options sẽ có các tham số như sau:

  • Position: Vị trí của nhóm field này.
  • Order No: Thứ tự hiển thị trong khu vực viết bài.
  • Style: Bạn nên chọn kiểu Standard.
  • Hide on Screen: Cái này không cần thiết, chỉ cần để nguyên.

Sau khi chọn xong, hãy ấn nút Publish để hoàn tất khâu tạo field. Sau đó vào trang viết bài bạn sẽ thấy field, hình dưới là ví dụ của một nhóm field mình làm mẫu (có sử dụng Placeholder và Append).

Gọi field ra ngoài theme

Trước khi gọi field, bạn nên xem qua bài cấu trúc theme để hiểu bạn sẽ chèn vào file nào trong theme để hiển thị đúng ý mình nếu bạn chưa hiểu cấu trúc theme.

Trong ACF, để gọi giá trị của field ra ta chỉ sử dụng một hàm duy nhất đó là the_field() hoặc get_field() (phải dùng thêm echo nếu muốn hiển thị) hoặc có thể sử dụng hàm get_post_meta() như custom field thông thường.

Cấu trúc của hàm the_field() là:

<?php the_field(‘tên-field’, ‘ID-bài-viết’); ?>

Ví dụ:

<?php the_field(‘link_download’); ?>

Trong đó, ID bài viết là tham số không bắt buộc, bạn chỉ nhập nếu cần lấy giá trị custom field trong một bài nào đó mà thôi.

Ví dụ:

<?php the_field(‘link_download’, ’69’); ?>

Hoặc bạn sử dụng hàm get_field() với cách như sau:

<?php


$field1 = get_field(‘link_download’);


echo $field1;


if ($field1) {


     echo "Có giá trị";


} else {


     echo "Không có giá trị";


}


?>