2014-04-18 71 views
1

找到了一個功能,添加到我的管理面板一個元框。這看起來不錯,但還不夠。 我需要至少十個自定義字段。如何創建它們?questoins看起來很愚蠢,因爲我的php知識很少,所以不要嚴格判斷;)。我將非常感謝解決這個問題或解釋它應該如何工作。創建元框

function myplugin_add_meta_box() { 
$screens = array('post', 'page'); 
    foreach ($screens as $screen) { 
    add_meta_box(
    'myplugin_sectionid', 
    __('My Post Section Title', 'myplugin_textdomain'), 
    'myplugin_meta_box_callback', 
    $screen 
); 
} 
} 
add_action('add_meta_boxes', 'myplugin_add_meta_box'); 
/** 
* Prints the box content. 
* 
* @param WP_Post $post The object for the current post/page. 
*/ 
function myplugin_meta_box_callback($post) { 

wp_nonce_field('myplugin_meta_box', 'myplugin_meta_box_nonce'); 
$value = get_post_meta($post->ID, '_my_meta_value_key', true); 

echo '<label for="myplugin_new_field">'; 
_e('Description for this field', 'myplugin_textdomain'); 
echo '</label> '; 
echo '<input type="text" id="myplugin_new_field" name="myplugin_new_field" value="' . esc_attr($value) . '" size="25" />'; 
} 
/** 
* When the post is saved, saves our custom data. 
* 
* @param int $post_id The ID of the post being saved. 
*/ 
function myplugin_save_meta_box_data($post_id) { 
if (! isset($_POST['myplugin_meta_box_nonce'])) { 
return; 
} 
if (! wp_verify_nonce($_POST['myplugin_meta_box_nonce'], 'myplugin_meta_box')) { 
return; 
} 
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) { 
return; 
} 
if (isset($_POST['post_type']) && 'page' == $_POST['post_type']) { 

if (! current_user_can('edit_page', $post_id)) { 
    return; 
} 
} else { 
if (! current_user_can('edit_post', $post_id)) { 
    return; 
} 
} 
if (! isset($_POST['myplugin_new_field'])) { 
return; 
} 
$my_data = sanitize_text_field($_POST['myplugin_new_field']); 
update_post_meta($post_id, '_my_meta_value_key', $my_data); 
} 
add_action('save_post', 'myplugin_save_meta_box_data'); 
+0

伊娃,[所以]和[wordpress.se] * **是充滿***的例子,我已經寫了很多的答案是這樣的。只是研究'add_meta_box' +'save_post' – brasofilo

+0

@brasofilo試圖找到它的一些解決方案,但似乎PHP讓我瘋狂 –

回答

1

如果你的PHP知識是相當低的,也有一些偉大的插件,讓你輕鬆做到這一點。

如果你有很多要添加的字段,我通常會發現使用下面的插件作爲排序字段並將它們拉出主題比手動更容易。

http://wordpress.org/plugins/advanced-custom-fields/

+0

我不能做我的自己的代碼,但我伸手它,不想超載由插件資源 –

+2

如果你不能自己編碼,我真的會建議走下去的插件之路。你不應該注意到一個插件的速度差異。這就是說,如果你自己做這件事,我只能建議閱讀元文件盒http://codex.wordpress.org/Function_Reference/add_meta_box或者搜索'多元文件夾wordpress'並閱讀其中一個教程。 –