Tạo Custom Fields bằng ACF (Advanced Custom Fields) – đây là công cụ cực mạnh để thêm các trường dữ liệu tùy chỉnh cho bài viết, trang, hoặc Custom Post Type.
Mục tiêu của bài học:
Bạn sẽ học cách:
- Tạo các field riêng (như: Giá, Thời lượng, Giảng viên…)
- Gắn vào bài viết, trang, hoặc custom post type
- Hiển thị dữ liệu đó ra ngoài giao diện
Bước 1: Cài plugin ACF
Cài như sau:
- Vào Giao diện quản trị WordPress
- Menu trái chọn Plugin → Thêm mới
- Gõ tìm:
Advanced Custom Fields
- Cài đặt & Kích hoạt
Bước 2: Tạo nhóm custom field
- Vào Custom Fields → Add New
- Đặt tên nhóm: “Thông tin khóa học”
- Bấm Add Field
- Label: Giá khóa học → Field name:
gia
- Label: Giảng viên → Field name:
giang_vien
- Label: Thời lượng → Field name:
thoi_luong
- Label: Giá khóa học → Field name:
- Kéo xuống dưới, tại “Location”:
- Chọn: Post Type → is equal to → khóa học (
khoahoc
)
- Chọn: Post Type → is equal to → khóa học (
Điều này giúp ACF chỉ hiển thị nhóm field đó khi bạn tạo bài viết dạng Khóa học.
- Nhấn Publish
Bước 3: Nhập dữ liệu
- Vào Khóa học → Thêm mới
- Bạn sẽ thấy xuất hiện thêm các trường: Giá, Giảng viên, Thời lượng
- Nhập nội dung rồi Đăng bài
Bước 4: Hiển thị dữ liệu Custom Fields ra ngoài
Mở file single-khoahoc.php
và thêm:
<?php get_header(); ?>
<h1><?php the_title(); ?></h1>
<div>
<?php the_content(); ?>
</div>
<p><strong>Giá:</strong> <?php the_field('gia'); ?> VNĐ</p>
<p><strong>Giảng viên:</strong> <?php the_field('giang_vien'); ?></p>
<p><strong>Thời lượng:</strong> <?php the_field('thoi_luong'); ?></p>
<?php get_footer(); ?>
the_field('gia')
là cách ACF lấy giá trị bạn nhập ở phần admin.
Mẹo nâng cao (không bắt buộc)
Việc cần làm | Cách thực hiện |
---|---|
Hiển thị nếu có dữ liệu | if (get_field('gia')) { ... } |
Hiển thị ảnh tùy chỉnh | Dùng field loại “Image” + wp_get_attachment_image() |
Hiển thị group/phức tạp | Dùng “Repeater”, “Flexible Content” (PRO) |
Tổng kết
Việc bạn vừa học | Ý nghĩa |
---|---|
Cài ACF | Plugin giúp tạo custom fields dễ nhất |
Tạo nhóm field | Gắn field vào đúng loại bài viết |
Dùng the_field() để hiển thị | Đưa dữ liệu từ admin ra ngoài giao diện |
Thảo luận