METABOX
Khi bạn đăng nhập vào admin và bạn edit một bài viết nào đó thì các khối trong giao diện ta gọi là các Meta Boxes. Vậy Meta Boxes là các khối hiển thị dữ liệu cho phép người dùng chỉnh sửa và lưu lại trong trang quản lý bài viết của WordPress.
#Add metabox
Hàm add_meta_box()
dùng để thêm một Meta Box
vào trong giao diện admin của Skilldo, hàm này có cú pháp như sau:
function add_meta_box ( $id, $title, $callback, $module = null, $position = 1, $content = 'leftb', $content_box = '')
#Parameters
Parameter | Value | Description |
---|---|---|
$id | string | Là ID của meta box, ID này phải là duy nhất không trùng với các Meta Boxes khác. |
$title | string | Tiêu đề của Meta Box. |
$callback | string | Hàm callback dùng để hiển thị mã HTML nằm bên trong Meta Box |
$module | string | Đối tượng mà Meta Box sẽ hiển thị, có thể là Page, Post, Category hoặc là một custom post type |
$position | int | Thứ tự ưu tiên hiển thị giữa các Meta box. |
$content | string | Vị trí mà Meta Box sẽ hiển thị bên trên giao diện. Chúng ta có ba vị trí đó là leftt, leftb và right. |
$content_box | array | Một mảng các tham số truyền vào Meta Box |
#Source
src/ ├── ... └── application/ └── helpers/ └── metabox_helper.php
#Example
Vị trí leftt
add_meta_box ('Example_metabox_id', 'Example Meta Boxs', 'example_callback_function', 'post', 1, 'leftt');
function example_callback_function() {
echo '<h5 class="text-center">vị Trí <b>LEFTT</b></h5>';
echo '<br/>';
}
Kết quả
Vị trí leftb
add_meta_box ('Example_metabox_id', 'Example Meta Boxs', 'example_callback_function', 'post', 1, 'leftb');
function example_callback_function() {
echo '<h5 class="text-center">vị Trí <b>LEFTB</b></h5>';
echo '<br/>';
}
Kết quả
Vị trí right
add_meta_box ('Example_metabox_id', 'Example Meta Boxs', 'example_callback_function', 'post', 1, 'right');
function example_callback_function() {
echo '<h5 class="text-center">vị Trí <b>RIGHT</b></h5>';
echo '<br/>';
}
Kết quả
METADATA
Metadata cho phép bạn đưa các thông tin bổ sung vào một tài nguyên của website.
Metadata có thể được thêm vào:
- Page
- Category
- Post
- Gallery
#Add metadata
Hàm này thêm một thông tin meta vào cơ sở dữ liệu, cấu trúc của nó như sau:
function add_metadata($object_type, $object_id, $meta_key, $meta_value)
#Parameters
Parameter | Value | Description |
---|---|---|
$object_type | string | Tên đối tượng metadata. Ví dụ post, page, comment, term |
$object_id | int | Khóa ngoại tham chiếu đến table chính. (ID post, page ...) |
$meta_key | string | Key của Meta data |
$meta_value | string | Giá trị của Meta data |
#Source
src/ ├── ... └── application/ └── helpers/ └── metabox_helper.php
#Get metadata
Hàm này dùng để lấy một metadata trong cơ sở dữ liệu
function get_metadata($object_type, $object_id = '', $meta_key = '', $single = false)
#Parameters
Parameter | Value | Description |
---|---|---|
$object_type | string | Tên đối tượng metadata. Ví dụ post, page, comment, term |
$object_id | int | Khóa ngoại tham chiếu đến table chính. (ID post, page ...) |
$meta_key | string | Key của Meta data |
$single | true|false (default false) | Nếu $single = true thì nó sẽ trả về giá trị của $meta_key , ngược lại nó sẽ trả về một mảng chứa tất cả các thông tin của record đó. |
#Source
src/ ├── ... └── application/ └── helpers/ └── metabox_helper.php
#Update metadata
Hàm này cập nhật giá trị cho một meta key nào đó, nếu meta_key không tồn tại sẽ tạo mới metadata
function update_metadata($object_type, $object_id, $meta_key, $meta_value)
#Parameters
Parameter | Value | Description |
---|---|---|
$object_type | string | Tên đối tượng metadata. Ví dụ post, page, comment, term |
$object_id | int | Khóa ngoại tham chiếu đến table chính. (ID post, page ...) |
$meta_key | string | Key của Meta data |
$meta_value | string | Giá trị của Meta data |
#Source
src/ ├── ... └── application/ └── helpers/ └── metabox_helper.php
#Delete metadata
Hàm này xóa một hoặc nhiều metas ra khỏi cơ sở dữ liệu, cấu trúc như sau:
function delete_metadata($object_type, $object_id, $meta_key, $meta_value, $delete_all = false)
#Parameters
$delete_all sẽ có giá trị true hoặc false, nếu true thì nó xóa hết tất cả các field có key trùng với $meta_key, ngược lại nó chỉ xóa field có key trùng với $meta_key và có object_id trùng với $object_id.
$meta_value nếu bạn thiết lập giá trị cho tham số này thì nó sẽ bổ sung thêm một điều kiện xóa đó là giá trị của key meta phải bằng với $meta_value.
#Source
src/ ├── ... └── application/ └── helpers/ └── metabox_helper.php
#Metadata object
Khi bạn thêm metadata bằng add_metadata hoặc update_metadat, khi xóa đối tượng (page, post ..) thì dữ liệu metadat sẽ không được tự động xóa kèm mà bạn phải viết lệnh hoặc xóa thủ công cho metadata đã thêm.
Để tự động hóa quá trình xóa metadata bạn có thể sử dụng các hàm metadata riêng biệt cho từng đối tượng
Adding metadata | Getting metadata | Updating metadata | Deleting metadata | |
---|---|---|---|---|
Category | add_category_meta | get_category_meta | update_category_meta | delete_category_meta |
Posts | add_post_meta | get_post_meta | update_post_meta | delete_post_meta |
Gallery | add_gallery_meta | get_gallery_meta | update_gallery_meta | delete_gallery_meta |
Users | add_user_meta | get_user_meta | update_user_meta | delete_user_meta |
Page | chưa hỗ trợ | chưa hỗ trợ | chưa hỗ trợ | chưa hỗ trợ |
Thay vì sử dụng các hàm metadata và có truyền tham số $meta_type thì bạn sử dụng các hàm trên để bỏ qua tham số $meta_type.