Theo dõi Yestech trên goole news

Hướng dẫn thêm meta box để phân loại trang trong wordpress

huong dan them meta box de phan loai trang trong wordpress

Đôi khi bạn cần nhóm các Trang lại nhưng chưa tìm ra giải pháp. Sau đây là hướng dẫn thêm meta box để phân loại trang trong wordpress

Meta box wordpress là gì? Tác dụng của meta box?

Trong WordPress, Meta Box (Hộp meta) là một khái niệm được sử dụng để chỉ một phần mở rộng của trang chỉnh sửa bài viết hoặc trang tùy chỉnh trong giao diện quản lý nội dung của WordPress. Meta Box cho phép bạn thêm các trường tùy chỉnh và dữ liệu bổ sung vào trang chỉnh sửa bài viết hoặc trang.

Tác dụng chính của Meta Box là cho phép bạn tạo và quản lý các trường tùy chỉnh cho các bài viết hoặc trang trong WordPress. Bằng cách sử dụng Meta Box, bạn có thể mở rộng khả năng của WordPress để lưu trữ và hiển thị các thông tin tùy chỉnh liên quan đến nội dung của bạn.

Ví dụ, bạn có thể sử dụng Meta Box để thêm trường tùy chỉnh như danh mục phụ, ngày hết hạn, tác giả liên quan, đánh giá, hình ảnh nổi bật và nhiều trường tùy chỉnh khác vào bài viết. Điều này cho phép bạn tạo ra các trang tùy chỉnh hoặc phổ biến hóa quy trình làm việc của bạn trong việc thêm thông tin bổ sung và tùy chỉnh cho các bài viết hoặc trang.

Tìm hiểu thêm  Wordpress xóa post type slug trong permalink

Hướng dẫn thêm meta box để phân loại trang trong wordpress

Thêm đoạn code sau vào file functions.php để tạo metabox trong trang

<?php
function page_meta_box_callback($post){
    $page_tags = get_post_meta( $post->ID, 'page_tags', true );
    ?>
    <select name="page_tags" id="page-tags">
        <option value="">-- Chọn loại trang --</option>
        <option <?php echo $page_tags == 'dich_vu' ? 'selected' : '' ?> value="dich_vu">Dịch vụ</option>
        <option <?php echo $page_tags == 'gioi_thieu' ? 'selected' : '' ?> value="gioi_thieu">Giới thiệu</option>
        <option <?php echo $page_tags == 'thong_tin' ? 'selected' : '' ?> value="thong_tin">Thông tin</option>
        <option <?php echo $page_tags == 'bang_gia' ? 'selected' : '' ?> value="bang_gia">Bảng giá</option>
    </select>
    <?php
}
function page_meta_box()
{
    add_meta_box( 'page-tags', 'Loại trang' , 'page_meta_box_callback' , 'page', 'side', 'high' );
}
add_action( 'add_meta_boxes',  'page_meta_box'  );

function save_page_tag_meta_box( $post_id ) {
    // Save logic goes here. Don't forget to include nonce checks!
    if ( isset( $_POST['post_type'] ) && 'page' === $_POST['post_type'] && isset( $_POST['page_tags'] ) ) {
        update_post_meta( $post_id, 'page_tags', $_POST['page_tags'] );
    }

}
add_action( 'save_post', 'save_page_tag_meta_box' );

Sau khi thêm code và edit hoặc tạo mới trang ta sẽ có :

huong dan them meta box de phan loai trang trong wordpress

 

Hướng dẫn tạo query để lấy các trang đã được phân loại

$r = new WP_Query( apply_filters( array( 
    'post_type' => 'page',
    'posts_per_page' => $number, 
    'no_found_rows' => true, 
    'post_status' => 'publish', 
    'meta_query'    => array(
        array(
            'key'       => 'page_tags',
            'value'     =>  gia_tri_tag //dich_vu ...,
            'compare'   => '=',
        ),
    ),
    )) 
);