问题描述
我想在 Page Attribute
框中添加选择列表,您可以在页面的管理界面的右侧看到。
有人知道这是否可行?
或至少在此框下方添加自定义框?
最佳解决方案
没有方便的钩子来添加东西给那个盒子。
你可以做两件事之一。
1. 添加一个新的元框
您可以通过挂接到 add_meta_boxes
操作并调用 add_meta_box
来执行此操作。您可以在调用 add_meta_box 时指定回调函数。该回调将照顾回显您的选择列表。
<?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. 删除默认页面属性元框,添加您自己的版本
帖子编辑屏幕上的所有内容,除主编辑器和标题区域外,都是一个元框。您可以通过调用 remove_meta_box
删除它们,然后将其替换为您自己的。
所以,首先,修改上面的 add 函数以包括一个删除元框调用。然后,您需要从 wp-admin/includes/meta-boxes.php
复制 page_attributes_meta_box
功能体,并将其放在下面。
<?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
}
无论哪种方式,您都需要挂接到 save_post
,以使用 add_post_meta
和/或 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
}
This tutorial 可能会帮助您。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。