Thứ Ba, 22 tháng 3, 2011

WordPress – Custom Taxonomies

WordPress – Custom Taxonomies

* November 25, 2010
* 18 comments

Chào mọi người. Hôm nay tanlevis xin giới thiệu 1 chức năng rất hay của wordpress – Custom taxonomy.

Taxonomy là gì?

* taxonomy là 1 cách để phân loại những bài viết trong wordpress, ví dụ các taxonomies mặc định của WP như: Categories, Post tags.
* Taxonomy vô cùng quan trọng trong việc thể hiện những bài post trong wp theo ý muốn của mình, ví dụ như 1 shop thời trang nhỏ như http://www.valentineyogurt.com/test/

Ứng dụng

Trong bài viết này mình có demo những gì mình đã viết ở địa chỉ http://www.valentineyogurt.com/test/, các bạn có thể login vào để thử, user: test, pass: 123456.
custom taxonomies
Cách sử dụng

- Mở file function.php trong thư mục theme của bạn, thêm đoạn code sau vào phần cuối file (nhớ là trước dấu ?>)

.

// Custom taxonomy for Size
register_taxonomy('Size', 'post', array(
'hierarchical' => true, 'label' => 'Size',
'query_var' => true, 'rewrite' => true));

// Custom taxonomy for Price
register_taxonomy('Price', 'post', array(
'hierarchical' => false, 'label' => 'Price',
'query_var' => true, 'rewrite' => true));

// Custom taxonomy for Brand
register_taxonomy('Brand', 'post', array(
'hierarchical' => true, 'label' => 'Brand',
'query_var' => true, 'rewrite' => true));

function register_taxonomy($taxonomy, $object_type, $args = array()): có chức năng đăng ký 1 taxonomy mới.

$taxonomy: tên taxonomy (vd: Size).
$object_type: đối tượng mà taxonomy quản lý (vd: post, page, link, custom post type).
$args = array(): mảng các tham số như:
‘hierarchical’ => true | false: có được phân cấp như Categories hay không.
‘label’: Nhãn hiển thị trong option panel, vd: Size, Price, Brand. ..v..v.. các bạn có thể tham khảo tại đây: http://codex.wordpress.org/Function_Reference/register_taxonomy

Khi đăng ký xong hãy vào dashboard, vào mục Posts và hãy nhìn xem chúng ta có gì? Đó là 3 taxonomy với tên (Size, Price, Brand) vừa đăng ký ở trên. Chúng giống như quản lý Tags, hay là Categories vậy.

Hiển thị taxonomy: Mở file index.php, tìm đoạn code nơi xuất ra những bài post, thêm code dưới đây vào trong vòng loop:

//hiển thị hình ảnh sản phẩm

ID, 'post-thumbnail'); ?>"

//Hiển thị title



ID, 'Size', 'Kích thước:', ', ', '' );?>
ID, 'Brand', 'Nhãn hiệu:', ', ', '' );?>
ID, 'Price', 'Giá:', '', '');?>

function get_the_term_list($id = 0, $taxonomy, $before = ”, $sep = ”, $after = ”): hiện các taxonomy của bài viết này theo tên của taxonomy đã đăng ký.
$id: $post->ID, id hiện tại của 1 post.
$taxonomy: tên của taxonomy mình đã đăng ký, vd: Size, Price, Brand (lưu ý có phân biệt chữ hoa và thường).
$before: thẻ, ký tự trước khi xuất ra tên của taxonomy, vd: Giá:
$sep: dấu các giữa các taxonomy, vd dấy phẩy (,).
$after: thẻ, ký tự sau khi xuất ra tên của taxonomy, trong bài này mình để rỗng.

Giai đoạn cuối là post vài bài lên thử nghiệm và style css lại cho đẹp, trong demo này mình lấy theme 20 10 (twenty ten) mặc định cửa wp 3.0 và cũng không style lại cho giống shop thời trang lắm :D .
Kết luận

Theo mình thì taxonomy thực sự rất hay, và rất cần thiết cho việc tùy chỉnh wordpress làm việc theo ý mình. Mình đang có ý định viết 1 trang quản lý học sinh trên WP. Hy vọng sớm thành hiện thực. Tiện đây mình cũng xin giới thiệu luôn bài viết tiếp theo sẽ là Custom Post Type trong wp và sau nữa sẽ là một trang smallShop có sản phẩm, giỏ hàng và vài chi tiết khác. Nếu có thắc mắc hay đóng góp cải thiện thì mong các bạn comment ở bên dưới nha.

Không có nhận xét nào:

Đăng nhận xét