Câu trả lời:
Không có móc thuận tiện để thêm một cái gì đó vào hộp đó.
Bạn có thể làm một trong hai điều.
1. Thêm một Meta Box mới
Bạn làm điều này bằng cách móc vào add_meta_boxes
hành động và gọi add_meta_box
. Bạn có thể chỉ định chức năng gọi lại trong lệnh gọi tới add_meta_box. Cuộc gọi lại đó sẽ đảm nhiệm việc lặp lại danh sách lựa chọn của bạn.
<?php
add_action( 'add_meta_boxes', 'wpse44966_add_meta_box' );
/**
* Adds the meta box to the page screen
*/
function wpse44966_add_meta_box()
{
add_meta_box(
'wpse44966-meta-box', // id, used as the html id att
__( 'WPSE 44966 Meta Box' ), // meta box title, like "Page Attributes"
'wpse44966_meta_box_cb', // callback function, spits out the content
'page', // post type or page. We'll add this to pages only
'side', // context (where on the screen
'low' // priority, where should this go in the context?
);
}
/**
* Callback function for our meta box. Echos out the content
*/
function wpse44966_meta_box_cb( $post )
{
// create your dropdown here
}
2. Xóa hộp meta thuộc tính Trang mặc định, thêm phiên bản của riêng bạn
Tất cả nội dung trên màn hình chỉnh sửa bài, ngoại trừ khu vực chỉnh sửa và tiêu đề chính, là một hộp meta. Bạn có thể loại bỏ chúng bằng cách gọi remove_meta_box
, sau đó thay thế chúng bằng của riêng bạn.
Vì vậy, trước tiên, hãy sửa đổi chức năng thêm ở trên để bao gồm một lệnh gọi hộp meta. Sau đó, bạn sẽ cần sao chép page_attributes_meta_box
cơ thể chức năng từ đó wp-admin/includes/meta-boxes.php
và đặt công cụ của bạn bên dưới nó.
<?php
add_action( 'add_meta_boxes', 'wpse44966_add_meta_box' );
/**
* Adds the meta box to the page screen
*/
function wpse44966_add_meta_box( $post_type )
{
// remove the default
remove_meta_box(
'pageparentdiv',
'page',
'side'
);
// add our own
add_meta_box(
'wpse44966-meta-box',
'page' == $post_type ? __('Page Attributes') : __('Attributes'),
'wpse44966_meta_box_cb',
'page',
'side',
'low'
);
}
/**
* Callback function for our meta box. Echos out the content
*/
function wpse44966_meta_box_cb( $post )
{
// Copy the the `page_attributes_meta_box` function content here
// add your drop down
}
Dù bạn làm điều này bằng cách nào, bạn sẽ cần nối vào save_post
để lưu giá trị của trường với add_post_meta
và / hoặc update_post_meta
.
<?php
add_action( 'save_post', 'wpse44966_save_post' );
/**
* Save our custom field value
*/
function wpse44966_save_post( $post_id )
{
// check nonces, permissions here
// save the data with update_post_meta
}
Hướng dẫn này có thể giúp bạn ra ngoài.
page_attributes_misc_attributes
mà cháy ngay sau khi lĩnh vực tự, ngay trước khi văn bản trợ giúp ở dưới cùng của hộp meta này cho phép mở rộng hộp meta thay vì cần phải thay thế nó. Nó vượt qua một đối số duy nhất, $ post, đối tượng của bài đăng hiện tại.