WordPress のメディア アップローダにカスタム フィールドを追加しようとしています。動作していることは確認済みですが、カスタム フィールド キーを隠しキーにしたいと考えています。
WordPress がカスタム フィールドを処理する方法に精通している場合は、キーを「_something」に設定すると、ユーザーに表示されるドロップダウン リストからそのキーが非表示になることがわかります。
/**
* Add Video URL fields to media uploader
*
* http://www.billerickson.net/wordpress-add-custom-fields-media-gallery/
*
* @param $form_fields array, fields to include in attachment form
* @param $post object, attachment record in database
* @return $form_fields, modified form fields
*/
function capgun2012_attachment_fields( $form_fields, $post ) {
$form_fields['capgun2012_video_url'] = array(
'label' => 'Vimeo URL',
'input' => 'text',
'value' => get_post_meta( $post->ID, 'capgun2012_video_url', true ),
'helps' => 'If provided, photo will be displayed as a video',
);
return $form_fields;
}
add_filter( 'attachment_fields_to_edit', 'capgun2012_attachment_fields', 10, 2 );
/**
* Save values of Photographer Name and URL in media uploader
*
* @param $post array, the post data for database
* @param $attachment array, attachment fields from $_POST form
* @return $post array, modified post data
*/
function capgun2012_attachment_fields_save( $post, $attachment ) {
if( isset( $attachment['capgun2012_video_url'] ) ) {
update_post_meta( $post['ID'], 'capgun2012_video_url', $attachment['capgun2012_video_url'] );
}
return $post;
}
add_filter( 'attachment_fields_to_save', 'capgun2012_attachment_fields_save', 10, 2 );
「capgun2012_video_url」をすべて「_capgun2012_video_url」に置き換えるだけでは機能しません。メディア アップローダが非表示のカスタム フィールドでうまく機能しないのではないかと考え始めています。
起こりたくないことの添付のスクリーンショットを参照してください(カスタム フィールドのドロップダウンに表示されるカスタム キー)。
助けてくれてありがとう。