我曾经在“编辑媒体”屏幕上添加了一个额外选项(使用attachment_fields_to_edit
挂钩,然后使用保存attachment_fields_to_save
). 然而,我今天已经更新到了3.5,编辑媒体屏幕现在基于编辑帖子屏幕,因此这些挂钩在这种情况下不再起作用。
为了克服这个问题,我使用add_metabox()
. 将显示metabox,但问题在于保存数据。
由于函数没有按我的预期工作,我想我应该输出$_POST
看看发生了什么。但是,函数似乎连接到save_post
更新媒体时未运行。
这是我的密码。有没有人能告诉我,我是不是走错了路,或者是否有一个我不知道的不同的钩子?谢谢
/** Register hooks for creating a metabox on the Edit Media screen and then saving the values */
if(current_user_can(\'manage_options\')) :
/** Add the option for including the image in the slideshow on the front page */
add_action(\'add_meta_boxes\', \'add_front_page_slideshow_option\');
/** Save the \'_include_on_front\' data */
add_action(\'save_post\', \'save_front_page_slideshow_option\');
endif;
/**
* Saves values from the \'Include in Front Page Sideshow\' meta box when the users Updates the media
*/
function save_front_page_slideshow_option($post_id){
echo \'<pre>\'; print_r($_POST); echo \'</pre>\';
die();
/** Check the security nonce to ensure we have the proper authorisation */
if(!wp_verify_nonce($_POST[\'slideshow_noncename\'], \'include-on-front-nonce\')) :
return false;
endif;
/** Ensure that the user has the correct permissions */
if(!current_user_can(\'edit_post\', $post_id)) :
return false;
endif;
/** Check if this is an auto save routine. If it is our form has not been submitted, so we dont want to do anything */
if(defined(\'DOING_AUTOSAVE\') && DOING_AUTOSAVE) :
return false;
endif;
/** Update the \'_include_on_front\' post meta field */
if($_POST[\'include_on_front\']) :
update_post_meta($post_id, \'_include_on_front\', $_POST[\'include_on_front\']);
else :
delete_post_meta($post_id, \'_include_on_front\');
endif;
}