LẬP TRÌNH PLUGIN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Bài 10: Hiển thị metadata ngoài frontend

Sẵn có bạn hỏi làm thế nào để hiển thị nội dung bài viết ra ngoài frontend thì mình viết luôn bài này để những bạn khác tham khảo luôn.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài này mình sẽ hướng dẫn lấy dữ liệu ra hai trang đó là trang danh sách bài viết và trang chi tiết, mời các bạn theo dõi.

1. Lấy dữ liệu Metadata ngoài frontend

Ở bài Metadata API mình có giới thiệu một số hàm dùng để lấy nội dung của Metadata đó là các hàm:

  • get_metadata()
  • get_post_meta()
  • get_comment_meta()
  • get_term_meta()
  • get_user_meta()

Trong các hàm đó bạn sẽ truyền ID và Key của metadata muốn lấy và nó sẽ return về giá trị cần lấy.

Bài viết này được đăng tại [free tuts .net]

Ví dụ: Lấy meta data post_link_download của bài post có id = 12

$link_download = get_metadata('post', 12, 'post_link_download ', true);
// Hoặc
$link_download = get_post_meta(12, 'post_link_download ', true);

Trường hợp bạn muốn lấy danh sách tất cả các Meta data của bài viết có ID = 12 thì bạn chỉ truyền một tham số $post_id là được.

$link_download = get_metadata('post', 12);
// Hoặc
$link_download = get_post_meta(12);

Lưu ý là trường hợp này nó sẽ return về một mảng chứa các thông tin của Metadata.

Đơn giản, dễ chơi phải ko các bạn :)

2. Hiển thị Metadata ở trang danh sách bài viết

Ở trang danh sách bài viết thì ta sử dụng vòng lặp (Loop) dạng như sau:

if (have_posts())
{
    while (have_posts())
    {
        the_post();
        
        // Show nội dung bài viết
        
    }
}

Lúc này muốn lấy Metadata của mỗi bài viết thì ta chỉ cần đặt nó trong vòng lặp là được. Ví dụ lấy thông tin post_link_downloadpost_link_demo ở mỗi vòng lặp thì ta làm như sau:

Cách 1: lấy từng key Metadata

// CÁCH 1: LẤY TỪNG KEY
if (have_posts())
{
    while (have_posts())
    {
        the_post();
        
        // lấy metadata
        $link_download = get_post_meta(get_the_ID(), 'post_link_download');
        $link_demo = get_post_meta(get_the_ID(), 'post_link_demo');
        
        // Show nội dung bài viết
        echo $link_download;
        echo $link_demo;
        // ...
    }
}

Cách 2: Lấy hết key Metadata

// CÁCH 2: LẤY HẾT KEY
if (have_posts())
{
    while (have_posts())
    {
        the_post();
        
        // lấy metadata
        $metadata = get_post_meta(get_the_ID());
        
        $link_download = isset($metadata['post_link_download']) ? $metadata['post_link_download'] : '';
        $link_demo = isset($metadata['post_link_demo']) ? $metadata['post_link_demo'] : '';
        
        // Show nội dung bài viết
        echo $link_download;
        echo $link_demo;
        // ...
    }
}

3. Hiển thị Metadata ở trang chi tiết

Cách sử dụng ở trang này cũng chẳng khác gì mấy so với trang danh sách bài viết, cái khác là bạn áp dụng code và truyền tham số ở file single.php thôi :)

4. Lời kết

Như vậy là mình đã hướng dẫn các bạn cách sử dụng Meta Box và Metadata ở frontend, đây cũng là một câu hỏi mà nhiều bạn đã hỏi mình nên mình viết luôn cho tiện trả lời, thay vì trả lời nhiều lần thì gửi 1 link là được :)

Bài này mình xin dùng ở đây, bài tiếp theo chúng ta sẽ tìm hiểu về Custom Post Type.

Cùng chuyên mục:

Child theme là gì? Cách tạo Child theme trong WordPress

Child theme là gì? Cách tạo Child theme trong WordPress

Cách tạo Shortcodes trong WordPress từ A-Z

Cách tạo Shortcodes trong WordPress từ A-Z

Cách sửa lỗi SSL trong WordPress và cài đặt

Cách sửa lỗi SSL trong WordPress và cài đặt

Sử dụng  CSS & JavaScript trong Wordpress

Sử dụng CSS & JavaScript trong Wordpress

Cách tạo và sử dụng các template file trong theme Wordpress

Cách tạo và sử dụng các template file trong theme Wordpress

Cách tạo Widget trong Theme WordPress

Cách tạo Widget trong Theme WordPress

Theme trong WordPress là gì? Cách cài đặt Theme trong WordPress

Theme trong WordPress là gì? Cách cài đặt Theme trong WordPress

Cách tạo Theme WordPress từ Scratch từ A-Z

Cách tạo Theme WordPress từ Scratch từ A-Z

Bài 06: Tạo trang quản lý Options trong WordPress

Bài 06: Tạo trang quản lý Options trong WordPress

Ở bài trước mình có nêu ra một ví dụ về quản lý thông tin…

Bài 05: Options API trong WordPress: add_option / get_option ...

Bài 05: Options API trong WordPress: add_option / get_option ...

Trong database của WordPress bạn sẽ thấy một table ten là [prefix]_options, table này sẽ…

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bài 04: Tìm hiểu Hooks , Action và Filter trong WordPress

Bạn đã từng nghe khái niệm lập trình hướng sự kiện trong các Framework như…

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Bài 02: WordPress API là gì? Danh sách API trong WordPress

Đáng lẽ mình không viết bài này nhưng lúc đang viết bài tiếp theo thì…

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

Bài 01: WordPress là gì? Nên làm website bằng WordPress?

WordPress là một CMS được phát triển trên ngôn ngữ lập trình PHP ...

Bài 12: Custom Taxonomy  trong WordPress

Bài 12: Custom Taxonomy trong WordPress

Bài trước mình đã hướng dẫn bạn tạo một thể loại bài viết mới bằng…

Bài 11: Tạo Custom Post Type trong WordPress

Bài 11: Tạo Custom Post Type trong WordPress

Đây là các thể loại mặc định có sẵn sau khi bạn cài đặt WordPress.…

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Bài 09: Bốn bước custom Meta Boxes trong WordPress

Tới bài thứ chín này thì khái niệm Custom Meta Boxes không còn xa lạ…

Bài 08: Metadata API trong WordPress

Bài 08: Metadata API trong WordPress

WordPress sử dụng mô hình EAV nhằm giúp lập trình viên có thể tùy biến…

Bài 07: Custom Meta Boxes trong WordPress

Bài 07: Custom Meta Boxes trong WordPress

WordPress là một CMS nên hệ thống dữ liệu của nó chỉ dừng lại ở…

Bài 06: Tạo menu trong Admin WordPress

Bài 06: Tạo menu trong Admin WordPress

Ở bài tạo trang quản lý Options mình đã hướng dẫn các bạn thêm một…

Bài 03: Các bước tạo plugin trong WordPress (căn bản)

Bài 03: Các bước tạo plugin trong WordPress (căn bản)

Như ta biết WordPress là một CMS mã nguồn mở giúp quản lý nội dung…

Top