我希望能够添加一个新的小部件'到管理部分的侧边栏,特别是在"新页面"和"编辑页面"页面。
我正在阅读Wordpress API文档,但我似乎无法在第一个" postbox-container-1"中找到添加新部分的位置。部分。
如果你进入wordpress管理部分,然后点击添加页面,我想在"发布/页面属性/特色图像"下添加一个新的小部件。小部件。
我最接近的是:add_action('dbx_post_sidebar', 'pluginFunctionHere');
。不幸的是,这会在主页WYSIWYG编辑器下添加我的所有内容。
我知道如何定期添加它,但我想将它作为一般用途的插件。有任何想法吗?或者这部分是否有特定的钩子?
答案 0 :(得分:3)
我尝试了上面的例子,但它没有用。然后我搜索了它缺少的东西并找到了它。我稍稍调整了original。
/**
* Register meta box(es).
*/
function wpdocs_register_meta_boxes() {
add_meta_box( 'meta-box-id', __( 'Metabox Title', 'textdomain' ), 'wpdocs_my_display_callback', 'post', 'side', 'high');
}
add_action( 'add_meta_boxes', 'wpdocs_register_meta_boxes' );
/**
* Meta box display callback.
*
* @param WP_Post $post Current post object.
*/
function wpdocs_my_display_callback( $post ) {
// Display code/markup goes here. Don't forget to include nonces!
?> <h1>Test</h1><?php
}
/**
* Save meta box content.
*
* @param int $post_id Post ID
*/
function wpdocs_save_meta_box( $post_id ) {
// Save logic goes here. Don't forget to include nonce checks!
}
add_action( 'save_post', 'wpdocs_save_meta_box' );
答案 1 :(得分:1)
首先,您需要注册元框。你可以使用add_meta_boxes_page
hook。
add_action( "add_meta_boxes_page", "se20892273_add_meta_boxes_page" );
// Register Your Meta box
function se20892273_add_meta_boxes_page( $post )
{
add_meta_box(
'se20892273_custom_meta_box', // this is HTML id
'Metabox Title',
'se20892273_custom_meta_box', // the callback function
'page', // register on post type = page
'side', //
'core'
);
}
然后使用回调函数生成模板
function se20892273_custom_meta_box( $post )
{
// you will get the $post object
// do your stuff here
}
要保存元框上使用的任何输入值,请使用“save_post_page”hook。
add_action( "save_post_page", "se20892273_save_post_page" );
function se20892273_save_post_page( $post_ID )
{
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_ID ;
if( isset( $_POST['input_name'] ))
{
update_post_meta( $post_ID, '_w4_template', $_POST['input_name'] );
}
}