Làm trang shop đơn giản với WordPress – 03 [NEW]

Tiếp tục trong phần này, chúng ta sẽ thực hiện bước đầu tiên đó là tạo một loại bài đăng tùy chỉnh để quản lý sản phẩm. Như các bạn cũng biết mặc định WordPress đã cung cấp cho chúng ta các loại bài đăng cơ bản như Post (quản lý bài viết), Page (quản lý trang) và Attachment (quản lý tệp đính kèm). Nếu chúng tôi cần đăng sản phẩm, chúng tôi sẽ cần tạo một loại bài đăng mới hơn là sử dụng các loại bài đăng mặc định.

Và tương tự với phân loại, chúng ta sẽ cần tạo một phân loại mới để phân loại sản phẩm và sẽ được gọi là danh mục sản phẩm.

Để tạo các loại bài đăng tùy chỉnh và phân loại, chúng ta có thể viết mã thông qua API register_post_type và API register_taxonomy nhưng trong loạt bài này tôi sẽ tạo loại bài đăng thông qua plugin Piklist vì viết mã ngắn hơn, dễ đọc hơn viết thông thường.

Trước khi thực hiện, vui lòng kiểm tra xem tệp /sparkling-child/functions.php có đoạn này:

/**
* Nhúng tập tin /inc/init.php vào để load một số chức năng trong website
*/
require dirname( __FILE__ ) . ‘/inc/init.php’;

Nếu không, hãy thêm nó.

Tạo loại bài đăng tùy chỉnh

Bây giờ bạn tạo một tệp tại /sparkling-child/inc/custom-post-type.php và tệp này sẽ chứa tất cả mã để tạo loại bài đăng tùy chỉnh. Chúng ta có thể ghi trực tiếp vào /sparkling-child/functions.php nhưng những đoạn mã này nên để trong một thư mục riêng để dễ quản lý sau này.

Trong tệp custom-post-type.php, chúng ta có đoạn mã sau:

/**
* Tạo custom post type
* https://piklist.com/learn/doc/piklist_post_types/
*/
function thachpham_register_post_types( $post_types ) {

// Tạo post type tên ‘sanpham’
$post_types[‘sanpham’] = array(
‘labels’ => array(
‘name’ => ‘Sản phẩm’,
‘singular_name’ => ‘Sản phẩm’,
‘add_new’ => ‘Thêm sản phẩm’,
‘add_new_item’ => ‘Thêm sản phẩm mới’,
‘all_items’ => ‘Tất cả sản phẩm’,
‘edit_item’ => ‘Sửa sản phẩm’,
‘featured_image’ => ‘Ảnh đại diện sản phẩm’,
‘filter_item_list’ => ‘Lọc danh sách sản phẩm’,
‘item_list’ => ‘Danh sách sản phẩm’,
‘set_featured_image’ => ‘Thiết lập ảnh đại diện’
),
‘title’ => ‘Nhập tên sản phẩm’,
‘public’ => true,
‘supports’ => array(‘title’, ‘thumbnail’, ‘editor’, ‘comment’),
‘rewrite’ => array(‘slug’ => ‘sanpham’),
‘hide_meta_box’ => array(‘author’),
‘has_archive’ => true
);

return $post_types;
}
add_filter(‘piklist_post_types’, ‘thachpham_register_post_types’);

?>

Trong đoạn mã trên, các tham số bên trong đều sử dụng tham số mặc định của hàm register_post_type () nên mình sẽ không giải thích thêm ở đây. Nhưng cách sử dụng thì khác, đó là chúng ta sẽ viết theo chuẩn tạo post type của plugin Piklist, bạn tham khảo tại https://piklist.com/learn/doc/piklist_post_types/.

Trong đó, bạn ghi chú địa điểm $post_types['sanpham'] sau đó sanpham là tên của loại bài đăng tùy chỉnh mà chúng ta sẽ cần tạo.

Sau đó, bạn mở tệp /sparkling-child/inc/init.php và thêm phần sau để nó gọi tệp custom-post-type.php để chạy:

<?php

include(‘custom-post-type.php’);

Sau khi thực hiện thành công, chúng ta có phần Sản phẩm trong trang quản trị.

Làm trang shop đơn giản với WordPress – 03 [NEW]

Tạo phân loại tùy chỉnh

Tiếp tục, chúng tôi tạo thêm tệp /sparkling-child/inc/custom-taxonomy.php và đặt những thứ sau vào đó:

<?php
/**
* Tạo custom taxonomy
* https://piklist.com/learn/doc/getting-started-taxonomies-piklist/
*/
function thachpham_register_taxonomies( $taxonomies ) {
$taxonomies[‘sanpham_cat’] = array(
‘post_type’ => ‘sanpham’,
‘name’ => ‘sanpham_cat’,
‘show_admin_column’ => true,
‘configuration’ => array(
‘hierarchical’ => true,
‘labels’ => array(
‘name’ => ‘Danh mục sản phẩm’,
‘name_singular’ => ‘Danh mục sản phẩm’,
‘all_items’ => ‘Tất cả danh mục sản phẩm’,
‘edit_item’ => ‘Sửa danh mục sản phẩm’,
‘view_item’ => ‘Xem danh mục sản phẩm’,
‘add_new_item’ => ‘Thêm danh mục sản phẩm’
),
‘show_ui’ => true,
‘query_vars’ => true,
‘rewrite’ => array(‘slug’=>’sanpham_cat’)
)
);

return $taxonomies;
}
add_filter(‘piklist_taxonomies’, ‘thachpham_register_taxonomies’);

Trong đó, 'post_type' => 'sanpham' có nghĩa là chúng tôi sử dụng phân loại này cho tên loại bài đăng sanpham. Phần còn lại $taxonomies['sanpham_cat']'name' => 'sanpham_cat' là đặt tên phân loại này là sanpham_cat. Thông tin thêm tại https://piklist.com/learn/doc/getting-started-taxonomies-piklist/.

Cuối cùng, thêm đoạn sau /sparkling-child/inc/init.php để nó tải tệp này:

include(‘custom-taxonomy.php’);

Và thực hiện thành công bạn sẽ thấy có một phần tên là Danh mục sản phẩm trong phần sản phẩm.

shopdongian-cpt-02

Phần kết

Bài viết này kết thúc với việc chúng ta đã tạo thành công phân loại tùy chỉnh và loại bài đăng tùy chỉnh và trong bước tiếp theo chúng ta sẽ tạo một thành phần khá quan trọng khác là metabox để nhập giá và thuộc tính sản phẩm.

Đánh giá nội dung này

Tiếp tục đọc trong bộ truyện