Cách sử dụng custom post types WordPress 3.0

Giới Thiệu Về Custom Post Types Trong WordPress
WordPress không chỉ giới hạn ở các bài viết (Posts) và trang (Pages) mặc định. Custom Post Types (CPTs) cho phép bạn tạo các loại nội dung khác nhau, tùy chỉnh theo nhu cầu cụ thể của trang web của bạn. Ví dụ, bạn có thể tạo CPT cho “Sản phẩm”, “Dự án”, “Sự kiện”, hoặc bất kỳ loại nội dung nào khác mà bạn cần quản lý một cách riêng biệt. Sử dụng CPT giúp bạn tổ chức nội dung một cách khoa học và chuyên nghiệp hơn. Nó giúp tách biệt các loại nội dung khác nhau, làm cho việc quản lý và hiển thị nội dung trở nên dễ dàng hơn.
Tại Sao Nên Sử Dụng Custom Post Types?
Sử dụng Custom Post Types mang lại nhiều lợi ích đáng kể cho việc quản lý và phát triển trang web WordPress của bạn. Dưới đây là một số lý do chính:
- Tổ Chức Nội Dung Tốt Hơn: Thay vì trộn lẫn tất cả nội dung vào bài viết thông thường, bạn có thể phân loại và quản lý chúng theo các loại nội dung riêng biệt.
- Tùy Chỉnh Linh Hoạt: CPTs cho phép bạn thêm các trường tùy chỉnh (custom fields) để lưu trữ thông tin đặc biệt liên quan đến loại nội dung đó. Điều này giúp bạn tạo ra các trang hiển thị nội dung độc đáo và phù hợp với nhu cầu.
- Dễ Dàng Quản Lý: WordPress cung cấp giao diện quản lý riêng cho mỗi CPT, giúp bạn dễ dàng tìm kiếm, chỉnh sửa và cập nhật nội dung.
- SEO Tốt Hơn: Sử dụng CPTs giúp bạn cấu trúc nội dung một cách rõ ràng, giúp các công cụ tìm kiếm hiểu rõ hơn về trang web của bạn. Điều này có thể cải thiện thứ hạng tìm kiếm.
- Khả Năng Mở Rộng: Bạn có thể dễ dàng thêm các tính năng mới cho CPTs bằng cách sử dụng các plugin hoặc viết code tùy chỉnh.
Cách Tạo Custom Post Type Bằng Code
Có nhiều cách để tạo Custom Post Type trong WordPress, nhưng cách phổ biến nhất là sử dụng code. Dưới đây là hướng dẫn chi tiết:
- Tạo File Plugin: Tạo một file PHP mới, ví dụ: `custom-post-type.php`, và đặt nó trong thư mục `wp-content/plugins/`.
- Thêm Header Plugin: Thêm header plugin vào file PHP:
“`php
<?php
/**
* Plugin Name: Custom Post Type Example
* Description: A simple plugin to create a custom post type.
* Version: 1.0.0
* Author: Your Name
*/
“` - Đăng Ký Custom Post Type: Sử dụng hàm `register_post_type()` để đăng ký CPT. Ví dụ:
“`php
function create_book_post_type() {
$args = array(
‘labels’ => array(
‘name’ => ‘Books’,
‘singular_name’ => ‘Book’,
),
‘public’ => true,
‘has_archive’ => true,
‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’, ‘excerpt’, ‘custom-fields’, ‘revisions’ ),
‘menu_icon’ => ‘dashicons-book’,
);
register_post_type( ‘book’, $args );
}
add_action( ‘init’, ‘create_book_post_type’ );
“`Giải thích các tham số:
- `labels`: Định nghĩa các nhãn hiển thị trong giao diện quản trị WordPress.
- `public`: Xác định CPT có hiển thị trên trang web hay không.
- `has_archive`: Xác định CPT có trang lưu trữ hay không.
- `supports`: Xác định các tính năng mà CPT hỗ trợ (ví dụ: tiêu đề, nội dung, hình ảnh đại diện).
- `menu_icon`: Icon hiển thị trên menu quản trị WordPress (sử dụng Dashicons).
- Kích Hoạt Plugin: Vào trang Quản trị WordPress -> Plugins -> kích hoạt plugin `Custom Post Type Example`.
Sử Dụng Plugin Để Tạo Custom Post Type
Nếu bạn không muốn viết code, bạn có thể sử dụng các plugin để tạo Custom Post Types một cách dễ dàng. Một số plugin phổ biến bao gồm:
- Custom Post Type UI: Đây là một plugin miễn phí và dễ sử dụng, cho phép bạn tạo và quản lý CPTs thông qua giao diện đồ họa.
- Pods: Pods là một plugin mạnh mẽ hơn, cho phép bạn tạo CPTs, custom fields và taxonomy một cách linh hoạt.
- ACF (Advanced Custom Fields): Mặc dù chủ yếu được sử dụng để tạo custom fields, ACF cũng cho phép bạn tạo CPTs.
Cách sử dụng Custom Post Type UI (CPT UI):
- Cài Đặt và Kích Hoạt Plugin: Tìm kiếm và cài đặt plugin “Custom Post Type UI” từ kho plugin WordPress, sau đó kích hoạt nó.
- Tạo Custom Post Type: Truy cập CPT UI -> Add/Edit Post Types. Nhập thông tin cần thiết cho CPT của bạn (slug, singular name, plural name, labels, settings).
- Tạo Custom Taxonomy (Tùy chọn): Truy cập CPT UI -> Add/Edit Taxonomies. Nhập thông tin cần thiết cho taxonomy của bạn (slug, singular name, plural name, labels, settings).
- Liên Kết Taxonomy Với Post Type: Trong phần “Settings” của CPT, bạn có thể chọn các taxonomy mà bạn muốn liên kết với CPT đó.
- Lưu Thay Đổi: Nhấn nút “Add Post Type” hoặc “Save Post Type” để lưu thay đổi.
Thêm Custom Fields Vào Custom Post Type
Custom Fields (Trường Tùy Chỉnh) cho phép bạn thêm các trường dữ liệu đặc biệt vào Custom Post Type của bạn. Ví dụ, nếu bạn tạo CPT “Sản phẩm”, bạn có thể thêm các custom fields như “Giá”, “Mô tả ngắn”, “Hình ảnh sản phẩm”.
Cách thêm Custom Fields bằng plugin ACF (Advanced Custom Fields):
- Cài Đặt và Kích Hoạt Plugin: Tìm kiếm và cài đặt plugin “Advanced Custom Fields” từ kho plugin WordPress, sau đó kích hoạt nó.
- Tạo Field Group: Truy cập ACF -> Field Groups -> Add New. Nhập tên cho field group của bạn.
- Thêm Fields: Nhấn nút “Add Field” để thêm các custom fields. Chọn loại field (ví dụ: text, textarea, image, number) và nhập các thông tin cần thiết (field label, field name, field type, instructions).
- Thiết Lập Location Rules: Trong phần “Location”, chọn “Post Type” và chọn CPT mà bạn muốn hiển thị các custom fields này.
- Lưu Thay Đổi: Nhấn nút “Publish” hoặc “Update” để lưu thay đổi.
Sau khi bạn tạo field group, các custom fields sẽ xuất hiện trên trang chỉnh sửa của CPT mà bạn đã chọn.
Hiển Thị Custom Post Type Trên Trang Web
Có nhiều cách để hiển thị Custom Post Type trên trang web của bạn:
- Sử Dụng Loop Trong Template: Bạn có thể sử dụng vòng lặp WordPress (Loop) trong các template của theme để hiển thị CPT. Ví dụ:
“`php
‘book’,
‘posts_per_page’ => 10,
);
$the_query = new WP_Query( $args );if ( $the_query->have_posts() ) {
echo ‘- ‘;
- ‘ . get_the_title() . ‘
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo ‘‘;
}
echo ‘‘;
wp_reset_postdata();
} else {
echo ‘Không có sách nào.’;
}
?>
“`Giải thích:
- `post_type`: Chỉ định CPT mà bạn muốn hiển thị.
- `posts_per_page`: Số lượng bài viết hiển thị trên mỗi trang.
- `WP_Query`: Class để thực hiện truy vấn dữ liệu.
- `have_posts()`: Kiểm tra xem có bài viết nào hay không.
- `the_post()`: Thiết lập dữ liệu bài viết hiện tại.
- `get_permalink()`: Lấy URL của bài viết.
- `get_the_title()`: Lấy tiêu đề của bài viết.
- `wp_reset_postdata()`: Khôi phục dữ liệu bài viết ban đầu.
- Sử Dụng Shortcode: Bạn có thể tạo shortcode để hiển thị CPT. Điều này cho phép bạn dễ dàng chèn CPT vào bất kỳ trang hoặc bài viết nào.
- Sử Dụng Page Builder: Nhiều page builder (ví dụ: Elementor, Beaver Builder) hỗ trợ hiển thị CPT một cách dễ dàng thông qua các widget hoặc module.
- Tạo Archive Template: Tạo file `archive-{post_type}.php` trong theme của bạn để tùy chỉnh trang lưu trữ của CPT. Ví dụ, nếu CPT của bạn là “book”, bạn sẽ tạo file `archive-book.php`.
Custom Taxonomies Cho Custom Post Types
Custom Taxonomies (Phân Loại Tùy Chỉnh) cho phép bạn phân loại và tổ chức các Custom Post Types của bạn. Ví dụ, nếu bạn có CPT “Sản phẩm”, bạn có thể tạo các custom taxonomies như “Loại sản phẩm”, “Thương hiệu”, “Màu sắc”.
Cách tạo Custom Taxonomy bằng code:
“`php
function create_book_taxonomy() {
$labels = array(
‘name’ => ‘Genres’,
‘singular_name’ => ‘Genre’,
);
$args = array(
‘labels’ => $labels,
‘hierarchical’ => true,
‘public’ => true,
‘show_ui’ => true,
‘show_admin_column’ => true,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘genre’ ),
);
register_taxonomy( ‘genre’, ‘book’, $args );
}
add_action( ‘init’, ‘create_book_taxonomy’, 0 );
“`
Giải thích các tham số:
- `hierarchical`: Xác định taxonomy có phân cấp hay không (ví dụ: categories có phân cấp, tags không phân cấp).
- `public`: Xác định taxonomy có hiển thị trên trang web hay không.
- `show_ui`: Hiển thị giao diện quản lý taxonomy trong trang quản trị WordPress.
- `show_admin_column`: Hiển thị taxonomy trong cột quản trị bài viết.
- `query_var`: Cho phép truy vấn taxonomy.
- `rewrite`: Xác định slug cho URL của taxonomy.
Bạn cũng có thể sử dụng plugin Custom Post Type UI để tạo Custom Taxonomies một cách dễ dàng.
Ví Dụ Thực Tế Về Sử Dụng Custom Post Types
Dưới đây là một số ví dụ thực tế về cách sử dụng Custom Post Types:
- Trang Web Bất Động Sản: Tạo CPT “Bất động sản” với các custom fields như “Địa chỉ”, “Giá”, “Diện tích”, “Số phòng ngủ”, “Hình ảnh”. Sử dụng custom taxonomy “Loại bất động sản” (ví dụ: căn hộ, nhà phố, biệt thự) và “Khu vực” để phân loại bất động sản.
- Trang Web Du Lịch: Tạo CPT “Địa điểm du lịch” với các custom fields như “Mô tả”, “Hình ảnh”, “Giá vé”, “Giờ mở cửa”. Sử dụng custom taxonomy “Loại hình du lịch” (ví dụ: du lịch biển, du lịch núi, du lịch văn hóa) và “Tỉnh/Thành phố” để phân loại địa điểm du lịch.
- Trang Web Nhà Hàng: Tạo CPT “Món ăn” với các custom fields như “Mô tả”, “Hình ảnh”, “Giá”. Sử dụng custom taxonomy “Loại món ăn” (ví dụ: món khai vị, món chính, món tráng miệng) và “Nguyên liệu chính” để phân loại món ăn.
Lời Kết
Custom Post Types là một công cụ mạnh mẽ trong WordPress, cho phép bạn tạo ra các trang web linh hoạt và tùy chỉnh cao. Bằng cách sử dụng CPTs, bạn có thể tổ chức nội dung một cách khoa học, thêm các trường dữ liệu đặc biệt và tạo ra các trang hiển thị nội dung độc đáo. Hy vọng bài viết này đã cung cấp cho bạn những kiến thức cần thiết để bắt đầu sử dụng Custom Post Types trong WordPress. Chúc bạn thành công!