Lấy thông tin taxonomy hiện tại WordPress

5 tháng ago, WordPress Themes, Views
Lấy thông tin taxonomy hiện tại WordPress

Giới Thiệu về Taxonomies trong WordPress

WordPress không chỉ là một nền tảng blog; nó là một hệ thống quản lý nội dung (CMS) mạnh mẽ. Một trong những tính năng quan trọng của WordPress là taxonomies, cho phép bạn phân loại và tổ chức nội dung của mình một cách hiệu quả. Taxonomies giúp người dùng dễ dàng tìm kiếm và duyệt nội dung liên quan, cải thiện trải nghiệm người dùng và SEO.

Có hai loại taxonomies chính trong WordPress:

  • Categories (Danh mục): Được sử dụng để nhóm các bài viết theo các chủ đề rộng lớn. Mỗi bài viết thường thuộc về một hoặc một vài danh mục.
  • Tags (Thẻ): Được sử dụng để gán các từ khóa cụ thể cho các bài viết. Một bài viết có thể có nhiều thẻ.

Ngoài ra, WordPress còn cho phép bạn tạo các custom taxonomies để phù hợp với nhu cầu cụ thể của trang web của bạn. Ví dụ:

  • Bạn có thể tạo taxonomy “Sản phẩm” cho một trang web bán hàng.
  • Hoặc “Tác giả” cho một trang web tạp chí.

Bài viết này sẽ hướng dẫn bạn cách lấy thông tin về taxonomy hiện tại trong WordPress, giúp bạn tùy chỉnh và phát triển các tính năng phức tạp hơn trên trang web của mình.

Các Hàm WordPress Quan Trọng Liên Quan Đến Taxonomies

WordPress cung cấp nhiều hàm để làm việc với taxonomies. Dưới đây là một số hàm quan trọng mà bạn cần biết:

  • get_taxonomy(): Lấy thông tin về một taxonomy cụ thể dựa trên tên của nó.
  • get_terms(): Lấy danh sách các terms (thuật ngữ) trong một taxonomy.
  • get_the_terms(): Lấy danh sách các terms được gán cho một post (bài viết).
  • taxonomy_exists(): Kiểm tra xem một taxonomy có tồn tại hay không.
  • get_queried_object(): Lấy đối tượng hiện tại được truy vấn (ví dụ: category, tag, post).

Chúng ta sẽ sử dụng các hàm này (và một số hàm khác) để lấy thông tin taxonomy trong các ví dụ sau.

Lấy Thông Tin Taxonomy Hiện Tại trên Trang Category/Tag Archive

Khi bạn đang ở trên một trang archive cho một category hoặc tag, bạn có thể sử dụng hàm get_queried_object() để lấy thông tin về taxonomy hiện tại. Ví dụ:


<?php
$queried_object = get_queried_object();

if ( $queried_object ) {
    $taxonomy = $queried_object->taxonomy;
    $term_id = $queried_object->term_id;
    $term_name = $queried_object->name;
    $term_slug = $queried_object->slug;
    $term_description = $queried_object->description;

    echo '<h2>Tên Taxonomy: ' . esc_html( $taxonomy ) . '</h2>';
    echo '<p>ID của Term: ' . esc_html( $term_id ) . '</p>';
    echo '<p>Tên Term: ' . esc_html( $term_name ) . '</p>';
    echo '<p>Slug Term: ' . esc_html( $term_slug ) . '</p>';
    echo '<p>Mô tả Term: ' . esc_html( $term_description ) . '</p>';
}
?>

Đoạn code trên sẽ lấy đối tượng được truy vấn (là category hoặc tag) và sau đó lấy thông tin về taxonomy, ID, tên, slug và mô tả của term (thuật ngữ) đó. Lưu ý việc sử dụng esc_html() để đảm bảo an toàn cho dữ liệu được hiển thị.

Lấy Thông Tin Taxonomy Hiện Tại Trong Vòng Lặp (Loop) của Bài Viết

Nếu bạn muốn lấy thông tin về taxonomy của một bài viết cụ thể trong vòng lặp (The Loop), bạn có thể sử dụng hàm get_the_terms(). Ví dụ:


<?php
if ( have_posts() ) {
    while ( have_posts() ) {
        the_post();

        $terms = get_the_terms( get_the_ID(), 'category' ); // Thay 'category' bằng tên taxonomy của bạn

        if ( $terms && ! is_wp_error( $terms ) ) {
            echo '<h3>Danh mục:</h3>';
            echo '<ul>';
            foreach ( $terms as $term ) {
                echo '<li><a href="' . esc_url( get_term_link( $term ) ) . '">' . esc_html( $term->name ) . '</a></li>';
            }
            echo '</ul>';
        }
    }
}
?>

Trong ví dụ này, chúng ta sử dụng get_the_terms() để lấy danh sách các terms thuộc taxonomy ‘category’ của bài viết hiện tại. Sau đó, chúng ta lặp qua danh sách các terms và hiển thị tên của chúng, liên kết đến trang archive của term đó. Nhớ thay thế 'category' bằng tên của taxonomy bạn muốn lấy thông tin.

Lấy Thông Tin Taxonomy Từ Một Post ID Cụ Thể

Đôi khi, bạn cần lấy thông tin taxonomy của một bài viết cụ thể mà không cần phải ở trong vòng lặp. Bạn có thể sử dụng get_the_terms() với ID của bài viết đó.


<?php
$post_id = 123; // Thay đổi thành ID của bài viết bạn muốn kiểm tra
$terms = get_the_terms( $post_id, 'post_tag' ); // Thay 'post_tag' bằng tên taxonomy của bạn

if ( $terms && ! is_wp_error( $terms ) ) {
    echo '<h3>Tags:</h3>';
    echo '<ul>';
    foreach ( $terms as $term ) {
        echo '<li><a href="' . esc_url( get_term_link( $term ) ) . '">' . esc_html( $term->name ) . '</a></li>';
    }
    echo '</ul>';
}
?>

Tương tự như ví dụ trước, chúng ta sử dụng get_the_terms() để lấy các terms, nhưng lần này chúng ta truyền vào ID của bài viết ($post_id) và tên của taxonomy (‘post_tag’). Nhớ thay đổi các giá trị này cho phù hợp với trường hợp của bạn.

Lấy Thông Tin Tổng Quan về Taxonomy (Sử Dụng get_taxonomy())

Hàm get_taxonomy() cho phép bạn lấy thông tin tổng quan về một taxonomy cụ thể, chẳng hạn như tên, nhãn, có phải là taxonomy công khai hay không, v.v.


<?php
$taxonomy_name = 'category'; // Thay đổi thành tên taxonomy bạn muốn kiểm tra
$taxonomy = get_taxonomy( $taxonomy_name );

if ( $taxonomy ) {
    echo '<h2>Thông tin về Taxonomy: ' . esc_html( $taxonomy->name ) . '</h2>';
    echo '<p>Nhãn: ' . esc_html( $taxonomy->label ) . '</p>';
    echo '<p>Công khai: ' . ( $taxonomy->public ? 'Có' : 'Không' ) . '</p>';
    echo '<p>Hierarchical: ' . ( $taxonomy->hierarchical ? 'Có' : 'Không' ) . '</p>';
    // Thêm các thuộc tính khác của $taxonomy nếu cần
} else {
    echo '<p>Taxonomy ' . esc_html( $taxonomy_name ) . ' không tồn tại.</p>';
}
?>

Trong ví dụ này, chúng ta sử dụng get_taxonomy() để lấy đối tượng taxonomy dựa trên tên của nó. Sau đó, chúng ta hiển thị một số thuộc tính của đối tượng này, bao gồm nhãn, trạng thái công khai và trạng thái hierarchical. Bạn có thể truy cập các thuộc tính khác của đối tượng $taxonomy tùy theo nhu cầu của mình.

Kiểm Tra Sự Tồn Tại của Taxonomy (Sử Dụng taxonomy_exists())

Trước khi bạn cố gắng lấy thông tin về một taxonomy, bạn nên kiểm tra xem nó có tồn tại hay không bằng cách sử dụng hàm taxonomy_exists(). Điều này giúp bạn tránh các lỗi tiềm ẩn.


<?php
$taxonomy_name = 'my_custom_taxonomy'; // Thay đổi thành tên taxonomy bạn muốn kiểm tra

if ( taxonomy_exists( $taxonomy_name ) ) {
    echo '<p>Taxonomy ' . esc_html( $taxonomy_name ) . ' tồn tại.</p>';
} else {
    echo '<p>Taxonomy ' . esc_html( $taxonomy_name ) . ' không tồn tại.</p>';
}
?>

Ví dụ này rất đơn giản: chúng ta chỉ cần truyền tên của taxonomy vào hàm taxonomy_exists(). Hàm này sẽ trả về true nếu taxonomy tồn tại và false nếu không.

Tổng Kết

Bài viết này đã trình bày các phương pháp khác nhau để lấy thông tin taxonomy hiện tại trong WordPress. Bạn đã học cách sử dụng các hàm get_queried_object(), get_the_terms(), get_taxonomy()taxonomy_exists() để truy cập và hiển thị thông tin về categories, tags, và các custom taxonomies. Hy vọng rằng kiến thức này sẽ giúp bạn tùy chỉnh và phát triển các tính năng mạnh mẽ hơn cho trang web WordPress của mình.

Hãy nhớ rằng việc hiểu rõ về taxonomies là rất quan trọng để xây dựng một trang web WordPress có cấu trúc tốt và thân thiện với người dùng.

Related Topics by Tag