Hàm Get_post_meta trong WordPress​ là gì? Cách sử dụng?

KHUYẾN MÃI HOSTING Kiến thức hosting

Thực tế Hàm get_post_meta() là một công cụ hữu ích trong WordPress, giúp nhà phát triển dễ dàng lấy dữ liệu từ post meta, một loại dữ liệu bổ sung có thể được đính kèm với từng bài viết hoặc trang.

Vậy hàm get_post_meta() là gì và cách sử dụng nó như thế nào để tận dụng tối đa tiềm năng của WordPress? Hãy cùng dichvuhostinggiare.com tìm hiểu sâu hơn về hàm này và ứng dụng của nó trong việc xây dựng website.

1. Hàm Get_post_meta trong WordPress​ là gì?

Hàm get_post_meta() trong WordPress là một hàm dùng để lấy dữ liệu meta (dữ liệu bổ sung) của một bài viết (post). Dữ liệu meta này thường được lưu trữ trong cơ sở dữ liệu và có thể là các thông tin bổ sung cho bài viết như tác giả, ngày tháng, các tùy chọn bổ sung khác hoặc bất kỳ thông tin nào mà bạn muốn gắn thêm vào bài viết đó.

2. Cấu trúc của hàm get_post_meta():

Cấu trúc của hàm get_post_meta:

get_post_meta( $post_id, $meta_key, $single );

Giải thích các tham số:

  • $post_id: ID của bài viết mà bạn muốn lấy thông tin meta.
  • $meta_key: Tên của trường meta mà bạn muốn lấy dữ liệu. Nếu bạn không chỉ định, hàm sẽ trả về tất cả các dữ liệu meta liên quan đến bài viết.
  • $single: Một giá trị boolean (true hoặc false). Nếu true, hàm sẽ chỉ trả về một giá trị duy nhất (nếu có). Nếu false, hàm sẽ trả về một mảng các giá trị nếu có nhiều hơn một giá trị meta với cùng một khóa.

3. Ví dụ sử dụng Hàm Get_post_meta trong WordPress?

Giả sử bạn có một bài viết với ID là 123 và bạn đã lưu thông tin tiểu sử tác giả (author bio) vào custom field 'author_bio' của bài viết đó. Bạn muốn lấy giá trị này.

<?php
// Lấy giá trị của trường meta 'author_bio' từ bài viết có ID là 123
$author_bio = get_post_meta( 123, 'author_bio', true );

// Kiểm tra và in ra tiểu sử tác giả
if ( ! empty( $author_bio ) ) {
echo 'Tiểu sử tác giả: ' . $author_bio;
} else {
echo 'Không tìm thấy tiểu sử tác giả.';
}
?>

Giải thích:

  • 123: ID của bài viết mà bạn muốn lấy dữ liệu meta.
  • 'author_bio': Tên khóa (key) của trường meta bạn muốn lấy.
  • true: Tham số này đảm bảo rằng hàm chỉ trả về một giá trị duy nhất (thường dùng khi bạn biết trường meta chỉ có một giá trị duy nhất).

2. Ví dụ với nhiều giá trị:

Giả sử bạn đã thêm nhiều giá trị vào custom field 'tagline' cho bài viết có ID là 123. Bạn muốn lấy tất cả các giá trị này.

<?php
// Lấy tất cả các giá trị của trường meta ‘tagline’ từ bài viết có ID là 123
$taglines = get_post_meta( 123, ‘tagline’, false );

// Kiểm tra và in ra các giá trị
if ( ! empty( $taglines ) ) {
echo ‘Các tagline của bài viết: <br>’;
foreach ( $taglines as $tagline ) {
echo ‘- ‘ . $tagline . ‘<br>’;
}
} else {
echo ‘Không tìm thấy tagline nào.’;
}
?>

Giải thích:

  • false: Tham số này chỉ định rằng bạn muốn lấy tất cả các giá trị liên quan đến trường 'tagline'. Hàm sẽ trả về một mảng chứa tất cả các giá trị meta có cùng khóa.
  • foreach: Duyệt qua tất cả các giá trị của trường meta 'tagline' và in ra từng giá trị.

3. Ví dụ thực tế trong template:

Giả sử bạn đang làm việc với template của bài viết và muốn hiển thị thông tin bổ sung của bài viết (ví dụ như thông tin tác giả từ trường 'author_bio') trong phần nội dung của bài viết.

<?php
// Lấy tiểu sử tác giả
$author_bio = get_post_meta( get_the_ID(), ‘author_bio’, true );

// Hiển thị tiểu sử tác giả nếu có
if ( ! empty( $author_bio ) ) {
echo ‘<div class=”author-bio”>’;
echo ‘<h3>Tiểu sử tác giả:</h3>’;
echo ‘<p>’ . esc_html( $author_bio ) . ‘</p>’;
echo ‘</div>’;
}
?>

Giải thích:

  • get_the_ID(): Lấy ID của bài viết hiện tại.
  • esc_html(): Hàm này bảo vệ dữ liệu được hiển thị để tránh lỗi bảo mật khi hiển thị HTML không mong muốn.
  • Nếu bài viết có trường 'author_bio', tiểu sử sẽ được hiển thị.

 

Leave a Reply

Your email address will not be published. Required fields are marked *