2016-01-13 104 views
0

我將解釋我正在創建的內容,以便您輕鬆理解我的問題。我正在製作一個插件,讓你在你的網站上添加一個餐廳菜單。我目前有自定義管理儀表板菜單鏈接,如果你想添加一道菜到餐館菜單,你可以進入新的發佈頁面。我想修改「新文章」頁面,以便有價格字段和縮略圖上傳器,並將頁面標題從「添加新頁面」更改爲「添加新菜單」。我創建了一個自定義帖子類型的「碟子」,我只希望在帖子類型是碟子時發生這些更改。如果帖子類型是碟子,我怎樣才能在「添加新頁面」表單中添加更改?這是我的插件代碼到目前爲止...(P.S.)這是我的第一個插件!如何從插件修改WordPress中的新帖子表單?

<?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, 
     ) 
    ); 

} 

回答

0

要更改標籤的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');