我将解释我正在创建的内容,以便您轻松理解我的问题。 我正在制作一个插件,可让您将餐厅菜单添加到您的网站。 我目前有自定义的管理仪表板菜单链接,如果您想将菜肴添加到餐厅菜单中,可以将您带到新的帖子页面。 我想修改"新帖子"页面,以便有一个价格字段和一个缩略图上传器,并将页面标题从"添加新页面"更改为"添加新菜肴"。 我创建了一个自定义帖子类型"dish",我只希望在帖子类型为 dish 时发生这些更改。 当帖子类型为 dish 时,如何向"添加新页面"表单添加更改? 这是我到目前为止的插件代码...(附言)这是我的第一个插件!
<?php
/*
Plugin Name: HeadChef
Plugin URI: http://google.com
Description: Adds functionality for the restaurant's menu
Author: John Smith
Version: Alpha
Author URI: http://google.com
*/
add_action('admin_menu', 'hc_add_menu_items');
function hc_add_menu_items() {
// $page_title, $menu_title, $capability, $menu_slug, $callback_function
add_posts_page(__('Restaurant Menu'), __('My Menus'), 'read', 'edit.php?post_type=dish');
}
add_action( 'init', 'hc_create_post_type' );
function hc_create_post_type(){
register_post_type( 'dish',
array(
'labels' => array(
'name' => __( 'Menu Dish' ),
'singular_name' => __( 'Dish' )
),
'public' => true,
'has_archive' => true,
)
);
}
要更改 UI 中的标签,请参阅 register_post_type()
的参数,一些示例:
$labels = array(
'name' => _x( 'Menu dish' ),
'singular_name' => _x( 'Dish' ),
'add_new_item' => __( 'Add new dish' ),
'new_item' => __( 'New dish' ),
// ...
);
您可以使用add_meta_box()
将内容添加到编辑页面:
function myplugin_add_meta_box() {
// add here which for post types you want this box
$screens = array( 'dish' );
add_meta_box(
'myplugin_sectionid',
__( 'My Post Section Title', 'myplugin_textdomain' ),
'myplugin_meta_box_callback',
$screens
);
}
add_action( 'add_meta_boxes', 'myplugin_add_meta_box' );