VANHIEP.NET - Làm web giá rẻ - Thiết Kế Website - Thiết Kế Ứng Dụng Mobile

wordpress - hàm hiển thị category khi chạy trong vòng lặp while - phần 2

wordpress - hàm hiển thị category khi chạy trong vòng lặp while 

Trong WordPress, để hiển thị category của một bài viết trong vòng lặp while, bạn có thể sử dụng hàm the_category() hoặc get_the_category().

Dưới đây là cách sử dụng chúng trong vòng lặp while của WordPress, thường được sử dụng trong các tệp template như single.php, archive.php, hoặc index.php.

1. Sử dụng the_category()

Hàm the_category() sẽ in ra danh sách category của bài viết hiện tại trong vòng lặp.

<?php
if (have_posts()) :
    while (have_posts()) : the_post();
        the_title('<h2>', '</h2>'); // Hiển thị tiêu đề bài viết
        the_content(); // Hiển thị nội dung bài viết
        
        echo '<p>Categories: ';
        the_category(', '); // Hiển thị danh sách category, cách nhau bởi dấu phẩy
        echo '</p>';

    endwhile;
else :
    echo 'Không có bài viết nào.';
endif;
?>
  • the_category(', '): Hiển thị danh sách category của bài viết, phân cách bằng dấu phẩy. Bạn có thể thay dấu phẩy bằng bất kỳ ký tự nào khác nếu muốn.

2. Sử dụng get_the_category()

Nếu bạn muốn kiểm soát tốt hơn về cách hiển thị category, bạn có thể sử dụng get_the_category() để lấy danh sách category dưới dạng mảng và xử lý chúng trong vòng lặp while.

<?php
if (have_posts()) :
    while (have_posts()) : the_post();
        the_title('<h2>', '</h2>'); // Hiển thị tiêu đề bài viết
        the_content(); // Hiển thị nội dung bài viết
        
        $categories = get_the_category();
        if (!empty($categories)) {
            echo '<p>Categories: ';
            foreach ($categories as $category) {
                echo '<a href="' . esc_url(get_category_link($category->term_id)) . '">' . esc_html($category->name) . '</a>, ';
            }
            echo '</p>';
        }

    endwhile;
else :
    echo 'Không có bài viết nào.';
endif;
?>
  • get_the_category(): Lấy danh sách các category của bài viết hiện tại dưới dạng một mảng.
  • get_category_link($category->term_id): Lấy đường dẫn đến trang category cụ thể.
  • esc_url()esc_html(): Đảm bảo rằng URL và tên category được xử lý an toàn trước khi in ra.

Kết quả

Hai cách trên sẽ hiển thị danh sách category của mỗi bài viết trong vòng lặp while. Cách đầu tiên nhanh hơn nếu bạn không cần kiểm soát nhiều, còn cách thứ hai cho phép tùy chỉnh linh hoạt hơn khi bạn cần thêm thông tin hoặc chỉnh sửa cấu trúc hiển thị category.