Cách dùng hàm get_post() trong WordPress để lấy dữ liệu bài viết

Hàm get_post() trong WordPress để lấy dữ liệu của bài viết cụ thể nào đó (theo post_id) như tiêu đề, tác giả, ngày giờ post bài.  Hàm này cần 3 tham số truyền vào để lấy dữ liệu trả về: $post, $output, $filter.

Hàm get_post() nằm ở đâu?

Hàm này nằm ở trong core nguồn của WordPress.  Các bạn có thể tìm thấy hàm này tại file này: wp-includes/post.php. Đây là hàm nguyên bản của WordPress:

Vì nó nằm trong core rồi nên mình chỉ đưa ra minh họa bên trên. Bạn không cần quan tâm đến nó mà chỉ cần tìm hiểu cách sử dụng nó ở bên dưới đây.

How to use get_post() to get WordPress post content by post id

Get WordPress post content by post id

Cách sử dụng

Trong đó:

$id: Giá trị truyền vào nhằm xác định bài viết cần lấy thông tin. Nếu $id không có thì nó sẽ lấy $id của post hoặc page hiện tại.

$output:  Mặc định thì nó sẽ trả về một đối tượng WP_Post (WP_Post object). Nếu bạn muốn nó trả về dạng mảng thì có thể truyền giá trị $output là ARRAY_A hoặc ARRAY_N.

$filter: Tham số này để định dạng giá trị trả về. Mặc định là giá trị trả về dạng raw, nghĩa là không bị lọc gì. Bạn có thể sử dụng một trong các giá trị truyền vào cho tham số này như: raw (mặc định)editdbdisplayattribute or js.

Tham khảo cách dùng hàm get_terms()

Giá trị trả về

Hàm get_post() trả về một đối tượng WP_Post (WP_Post object).  Hàm get_post() sẽ trả về 18 thông số như danh sách bên dưới đây:

  • ID
  • post_author
  • post_name
  • post_type
  • post_title
  • post_date
  • post_date_gmt
  • post_content
  • post_excerpt
  • post_status
  • comment_status
  • ping_status
  • post_password
  • post_parent
  • post_modified
  • post_modified_gmt
  • comment_count
  • menu_order

Từ danh sách trả về đó, chúng ta hoàn toàn có thẻ lấy riêng từng giá trị hoặc lấy tất cả. Dưới đây là một ví dụ việc lấy giá trị tác giả bài viết có ID là 18:

Tương tự như vậy, nếu bạn muốn lấy giá trị nào thì chỉ cần chuyển tương ứng giá trị cần lấy. Ví dụ dưới đây sẽ lấy tiêu đề của bài viết. Lưu ý đây là tiêu đề chuẩn của bài viết chứ không phải SEO Title đâu nhé.

Lấy nội dung của post bằng hàm get_post()

Nếu bạn muốn lấy nội dung của bài viết theo post id (post content by post id) thì có thể dùng cách nhanh nhất là get_post(18)->post_content; Tuy nhiên, hàm dưới đây sẽ tinh chỉnh chút ít để trả về dữ liệu chuẩn hơn. Bạn hãy đọc và tham khảo rồi tìm hiểu thêm nhé.

Các bạn lưu ý là hàm này khác hoàn toàn với hàm get_posts() nhé.

Hàm này các bạn có thể sử dụng thoải mái ở Plugin hoặc ở template và không cần phải defines bất kỳ thông số nào. Nó có thể hoạt động độc lập trong môi trường nội bộ của WordPress như ở Plugins hay ở trong Theme.

Các bạn có thể tham khảo thêm thông tin ở trang hỗ trợ chính thức của hàm này trên trang WordPress for Developer tại đây.

Đánh giá
Share.
About Author

Chào bạn, mình là Gia Hân. Mình học về dược sỹ nhưng hiện tại chỉ làm nội trợ và mỹ phẩm handmade. Mình cũng có chút ít kiến thức về tin học như wordpress, joomla, hay SEO nhưng cũng chỉ ở mức đủ dùng, chưa thể làm thầy được. Các bài mình viết dựa chính trên kinh nghiệm của bản thân và thực tế sử dụng. Sẽ không tránh khỏi sai sót, nếu các bạn phát hiện thấy sai sót nào thì nhắn giúp để mình sửa nhé. Mục liên hệ ở đây.

Leave A Reply