Để lấy danh sách các thẻ (tags) của bài viết trong WordPress dưới dạng mảng, bạn có thể sử dụng hàm wp_get_post_tags() hoặc get_the_tags() của WordPress. Hàm này sẽ trả về một danh sách các đối tượng thẻ hoặc các trường cụ thể mà bạn yêu cầu. Dưới đây là ví dụ về cách viết hàm tùy chỉnh để lấy danh sách các thẻ tag, với tham số cho phép chọn các trường bạn muốn lấy.

Hàm lấy danh sách thẻ tag với các trường tùy chỉnh:

function get_post_tags_with_fields($post_id, $fields = ['term_id', 'name', 'slug']) {
    // Lấy danh sách thẻ của bài viết theo ID
    $tags = wp_get_post_tags($post_id);

    // Kiểm tra nếu không có thẻ nào
    if (empty($tags)) {
        return [];
    }

    // Mảng để lưu kết quả
    $result = [];

    // Duyệt qua từng thẻ và lấy các trường cụ thể
    foreach ($tags as $tag) {
        $tag_data = [];

        // Lấy các trường được yêu cầu từ tham số
        foreach ($fields as $field) {
            if (isset($tag->$field)) {
                $tag_data[$field] = $tag->$field;
            }
        }

        // Thêm dữ liệu thẻ vào mảng kết quả
        $result[] = $tag_data;
    }

    return $result;
}

Cách sử dụng:

  • $post_id: ID của bài viết mà bạn muốn lấy danh sách thẻ.
  • $fields: Mảng các trường mà bạn muốn lấy từ các thẻ tag. Mặc định, hàm sẽ trả về các trường term_id, name, và slug.

Ví dụ sử dụng:

$post_id = 123; // ID của bài viết
$fields = ['term_id', 'name', 'slug', 'description']; // Các trường bạn muốn lấy
$tags = get_post_tags_with_fields($post_id, $fields);

// In ra danh sách thẻ
print_r($tags);

Kết quả trả về:

Kết quả của hàm sẽ là một mảng chứa các thông tin của từng thẻ dưới dạng mảng con, với các trường mà bạn đã chỉ định:

Array
(
    [0] => Array
        (
            [term_id] => 5
            [name] => Tag 1
            [slug] => tag-1
            [description] => Mô tả thẻ 1
        )

    [1] => Array
        (
            [term_id] => 10
            [name] => Tag 2
            [slug] => tag-2
            [description] => Mô tả thẻ 2
        )
)

Bạn có thể thêm các trường khác như taxonomy, count tùy theo nhu cầu.