Post meta WordPress là gì? Những điều cần biết về post meta trong WordPress

Những điểm chính

 

  • Quan điểm của mình: Post meta không còn chỉ là kỹ thuật dành riêng cho lập trình viên WordPress mà đã trở thành kiến thức nền tảng nếu muốn xây dựng website chuyên nghiệp, có khả năng quản lý dữ liệu linh hoạt và mở rộng chức năng vượt ngoài mặc định của WordPress.

 

  • Khái niệm: Hiểu rõ post meta là hệ thống trường dữ liệu tùy chỉnh dùng để lưu thêm thông tin cho bài viết mà không làm thay đổi nội dung chính.

 

  • Chức năng post meta: Nắm được cách post meta hỗ trợ mở rộng dữ liệu và hiển thị nội dung động trên website WordPress.

 

  • Ứng dụng thực tế: Biết cách áp dụng post meta trong WooCommerce, SEO, website tin tức, review sản phẩm hoặc quản lý thông tin sự kiện.

 

  • Cơ chế hoạt động: Hiểu cách WordPress lưu và truy xuất dữ liệu meta trong database để quản lý thông tin hiệu quả hơn.

 

  • Hướng dẫn sử dụng: Biết cách tạo, quản lý và hiển thị post meta bằng Custom Fields, plugin hoặc code PHP.

 

Post meta trong WordPress là gì?

 

Post meta là các trường dữ liệu tùy chỉnh cho phép lưu trữ thêm thông tin bên ngoài tiêu đề và nội dung chính của bài viết. Nhờ đó, WordPress có thể mở rộng thêm nhiều chức năng hiển thị như giá sản phẩm, thông tin tác giả, đánh giá sao, thời gian đọc bài hoặc các dữ liệu kỹ thuật khác.

 

Thông thường, post meta sẽ được quản lý thông qua các meta box hiển thị trong giao diện chỉnh sửa bài viết.

 

Post meta, WordPress, post meta trong WordPress

 

Chức năng của post meta trong WordPress

 

Post meta đóng vai trò quan trọng trong việc mở rộng khả năng quản lý dữ liệu cho WordPress:

 

  • Mở rộng dữ liệu cho bài viết: Cho phép tạo thêm các trường thông tin riêng cho post, page hoặc sản phẩm WooCommerce.

 

  • Hiển thị dữ liệu động: Có thể sử dụng các hàm như get_post_meta() để lấy dữ liệu và hiển thị trực tiếp ra giao diện frontend.

 

  • Tùy biến giao diện quản trị: Giúp tạo các hộp nhập liệu trực quan để quản trị viên dễ dàng quản lý thông tin.

 

  • Hỗ trợ phát triển plugin/theme: Nhiều plugin SEO, WooCommerce hoặc page builder đều sử dụng post meta để lưu cấu hình.

 

Ứng dụng thực tế của post meta WordPress

 

Post meta được sử dụng rất phổ biến trong quá trình phát triển website WordPress:

 

  • Thêm giá bán, màu sắc, kích thước cho sản phẩm WooCommerce.

 

  • Lưu meta title, meta description cho plugin SEO như Yoast SEO hoặc Rank Math.

 

  • Tạo thông tin địa điểm, số điện thoại, giờ mở cửa cho website doanh nghiệp.

 

  • Lưu thông số kỹ thuật trong bài viết review điện thoại, laptop hoặc thiết bị công nghệ.

 

  • Thêm thời gian đọc bài, nguồn bài viết hoặc tên tác giả gốc cho website tin tức.

 

Cách hoạt động của post meta

 

Về mặt kỹ thuật, dữ liệu post meta được lưu trong bảng wp_postmeta của database WordPress. Bảng này hoạt động theo dạng key-value với các thành phần:

 

  • post_id: ID bài viết liên kết.

 

  • meta_key: Tên trường dữ liệu.

 

  • meta_value: Giá trị của dữ liệu tương ứng.

 

Nhờ cơ chế này, WordPress có thể lưu trữ thêm rất nhiều thông tin mà không ảnh hưởng tới nội dung chính của bài viết. Dữ liệu meta sau đó sẽ được truy xuất thông qua các hàm như get_post_meta() hoặc update_post_meta().

 

Cách sử dụng post meta trong WordPress chi tiết

 

Kích hoạt Custom Fields mặc định

 

Để bật Custom Fields trong WordPress:

 

  • Truy cập Pages hoặc Posts rồi chọn Edit bài viết.

 

  • Nhấn biểu tượng 3 chấm ở góc trên bên phải.

 

  • Chọn Preferences.

 

  • Trong tab General, kéo xuống phần Advanced và bật Custom Fields.

 

Sau khi kích hoạt, khu vực nhập trường dữ liệu tùy chỉnh sẽ xuất hiện trong trình chỉnh sửa bài viết.

 

Sử dụng plugin quản lý post meta

 

Bạn có thể sử dụng các plugin hỗ trợ quản lý post meta như:

 

  • Advanced Custom Fields (ACF)

 

  • Meta Box

 

  • Post Meta

 

Các plugin này giúp tạo giao diện quản lý dữ liệu chuyên nghiệp hơn với nhiều loại field như:

 

  • Text

 

  • Number

 

  • URL

 

  • Image upload

 

  • Select box

 

  • Checkbox

 

Ngoài ra còn hỗ trợ kéo thả, import/export và shortcode hiển thị dữ liệu.

 

Tạo Meta Box bằng code

 

Bạn có thể sử dụng hàm add_meta_box() để tạo meta box tùy chỉnh trong WordPress.

 

Ví dụ:


 
add_action('add_meta_boxes', 'divi_register_post_meta_box');

function divi_register_post_meta_box() {

    add_meta_box(

        'divi_post_extra_info',

        'Thông tin mở rộng',

        'divi_render_post_meta_box',

        'post',

        'normal',

        'high'

    );

}

function divi_render_post_meta_box($post) {

    wp_nonce_field('divi_save_post_meta', 'divi_post_meta_nonce');

    $source = get_post_meta($post->ID, '_post_source', true);

    $author = get_post_meta($post->ID, '_post_author', true);

    $time = get_post_meta($post->ID, '_reading_time', true);

?>

<p>

    <label><strong>Nguồn bài viết</strong></label><br>

    <input type="url" name="post_source"

        value="<?php echo esc_attr($source); ?>"

        style="width:100%">

</p>

<p>

    <label><strong>Tác giả gốc</strong></label><br>

    <input type="text" name="post_author"

        value="<?php echo esc_attr($author); ?>"

        style="width:100%">

</p>

<p>

    <label><strong>Thời gian đọc (phút)</strong></label><br>

    <input type="number" name="reading_time"

        value="<?php echo esc_attr($time); ?>"

        min="1" max="60">

</p>

<?php

}

add_action('save_post', 'divi_save_post_meta_box');

function divi_save_post_meta_box($post_id) {

    if (

        !isset($_POST['divi_post_meta_nonce']) ||

        !wp_verify_nonce(

            $_POST['divi_post_meta_nonce'],

            'divi_save_post_meta'

        )

    ) {

        return;

    }

    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {

        return;

    }

    if (!current_user_can('edit_post', $post_id)) {

        return;

    }

    if (isset($_POST['post_source'])) {

        update_post_meta(

            $post_id,

            '_post_source',

            esc_url_raw($_POST['post_source'])

        );

    }

    if (isset($_POST['post_author'])) {

        update_post_meta(

            $post_id,

            '_post_author',

            sanitize_text_field($_POST['post_author'])

        );

    }

    if (isset($_POST['reading_time'])) {

        update_post_meta(

            $post_id,

            '_reading_time',

            intval($_POST['reading_time'])

        );

    }

}
 

Truy xuất và hiển thị dữ liệu meta

 

Để hiển thị dữ liệu meta ra giao diện website, bạn có thể dùng hàm:


 
get_post_meta($post_id, $key, true);
 

Ví dụ:


 
<?php

$reading_time = get_post_meta(get_the_ID(), '_reading_time', true);

if ($reading_time) {

    echo 'Thời gian đọc: ' . $reading_time . ' phút';

}

?>
 

Trong Gutenberg, bạn cũng có thể đăng ký meta thông qua register_post_meta() và sử dụng REST API để quản lý dữ liệu động trong block editor.


Post meta, WordPress, post meta trong WordPress

 HỖ TRỢ TRỰC TUYẾN