Khi lập trình theme WordPress bạn sẽ phải sử dụng nhiều hàm hỗ trợ để đưa dữ liệu từ cơ sở dữ liệu ra ngoài. Với WordPress có nhiều hàm khác nhau. Tuy nhiên trong khuôn khổ bài viết này mình sẽ hướng dẫn bạn cách get category hay còn gọi là chuyên mục để đưa ra ngoài website.

1. Lấy tất cả Category

Để lấy tất cả chuyên mục bạn dùng hàm get_categories()

<?php 
   $categories = get_categories();
    foreach ( $categories as $category ) {
        var_dump('<pre>');
        print_r($category);
        var_dump('</pre>');
    }
?>

Sau khi chạy bạn sẽ kết quả trả về sẽ là danh sách các đối tượng có trong Database

get-category-wordpress

Cách giá trị trả về cần chú ý:

  • term_id: là id của chuyên mục
  • name: tên của chuyên mục
  • slug: là đường dẫn url

Tiếp đó mình sẽ dùng 3 dòng lệnh để lấy id, tên và đường dẫn

echo $category->term_id."<br/>";
echo $category->name."<br/>";
echo $category->slug."<br/>";

Như vậy là bạn đã lấy được danh sách tất cả các Category có trên website rồi.

2. Get category theo id hiện tại

Lấy chuyên mục hiện tại bạn sẽ dùng get_the_category()

Cũng tương tự như ở trên bạn thay bằng get_the_category() vào get_categories() thì kết quả nó chỉ lấy một Object hiện tại mà thôi.

Hoặc bạn cũng có thể dùng hàm get_queried_object() để Query Category hiện tại.

3. Get Category cho Custom Post Type

Trong trường hợp website của bạn có thêm Custom Post Type hoặc sử dụng Woocommerce thì bạn sẽ phải dùng

$args = array(
    'type'      => 'post',
    'number'    => 10,
    'parent'    => 0
);
$categories = get_categories( $args );
foreach ( $categories as $category ) {
    print_r($category);
}

Tại 'type' => 'post' bạn có thể thay post bằng đường dẫn custom post type hoặc là product (Nếu dùng Woocommerce).

Với bài viết này bạn đã biết cách lấy dữ liệu danh mục từ Database trong WordPress để hiển thị ra ngoài Frontend rất đơn giản phải không. Sau khi đọc xong hãy áp dụng ngay thực hành và làm chủ mã nguồn WordPress nhé!

Bình luận!

Xin lưu ý rằng tất cả các bình luận đều được kiểm duyệt theo chính sách bảo mật và tất cả các liên kết đều là nofollow. KHÔNG sử dụng từ khóa trong trường tên. Hãy để lại một cuộc trò chuyện cá nhân và ý nghĩa. *