Advanced Custom Fields (ACF) là một plugin mà rất nhiều lập trình viên WordPress trên thế giới đã và đang khuyên dùng vì nó sẽ rút ngắn thời gian tạo Meta Box chỉ với vài cú click, thậm chí khâu gọi giá trị Custom Fields của nó để hiển thị ra ngoài giao diện cũng rất nhanh vì hầu như chúng ta chỉ sử dụng một hàm duy nhất mà plugin này hỗ trợ sẵn.

Hướng dẫn sử dụng Advanced Custom Fields

Giới thiệu ACF

Bạn có thể tạo một Meta Box (gồm các trường tùy chỉnh) áp dụng cho mọi thứ trong trang WordPress:

  • Post Type: Post, Page, Custom Post Types
  • Một Post (bài viết), Page (trang) cụ thể
  • Category, Page Template
  • Taxonomy Term (Category, Tag, Custom Taxonomy)
  • User

Với các trường như:

  • Text, Text Area, Number, Email, Password
  • Wysiwyg Editor
  • Image
  • Select, Checkbox, Radio Button

Cài đặt plugin ACF

Trong WordPress Dashboard, vào Gói mở rộngCài mới, nhập Advanced Custom Fields vào ô tìm kiếm, bấm Cài đặt ngay bây giờ tại plugin được tìm ra, bấm tiếp Kích hoạt.

Cài đặt ACF

Bấm vào hình ảnh để xem kích thước lớn hơn.

Tạo một Meta Box

Ví dụ mình tạo một Meta Box Thông tin Giảng viên áp dụng cho Post, gồm Tên giảng viên (Text), Hình đại diện (Image), Chuyên môn (Text), Giới thiệu (Wysiwyg Editor). Trong trang Custom Fields, bấm Add New, nhập Tiêu đề của Meta Box này và chọn như hình sau.

Tạo Meta Box - ACF

Sau đó bấm Publish (Đăng bài viết). Bây giờ, khi Viết bài mới, các bạn sẽ thấy có một Meta Box với các trường vừa tạo.

Viết bài mới - ACF

Bấm vào hình ảnh để xem kích thước lớn hơn.

Sử dụng ACF

Trong Theme, ta gọi các hàm được ACF cung cấp sẵn.

Text, Wysiwyg Editor

Ví dụ xuất thông tin Tên giảng viên, Chuyên môn và Giới thiệu.

<h3 id="tên-giảng-viên"><?php the_field('tên_giảng_viên'); ?></h3>
<span id="chuyên-môn"><?php the_field('chuyên_môn'); ?></span>
<p id="giới-thiệu"><?php the_field('giới_thiệu'); ?></p>

Image

Về hình ảnh thì phức tạp hơn một tí, ví dụ xuất Hình đại diện.

<?php
    $image = get_field('hình_đại_diện');
    if ($image) :
?>
<img src="<?php echo $image['sizes']['thumbnail']; ?>" alt="Hình đại diện">
<?php endif; ?>

Chúc các bạn thành công!