2012-06-11 2 views
0

Я пытаюсь добавить настраиваемое поле в загрузчик мультимедиа в WordPress. Я его работаю, но я бы хотел, чтобы пользовательский поле был скрытым.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», то он не работает. Я начинаю думать, что медиа-загрузчик не играет хорошо со скрытыми настраиваемыми полями.

Пожалуйста, см. Прилагаемый скриншот от Я не хочу, чтобы произошел (пользовательский ключ, отображаемый в пользовательских полях).

enter image description here

Спасибо за помощь.

ответ

0

Это был дан ответ здесь: поле http://devilsworkshop.org/adding-custom-fields-to-wordpress-media-gallery-upload/

Установка:

/* For adding custom field to gallery popup */ 
function rt_image_attachment_fields_to_edit($form_fields, $post) { 
    // $form_fields is a an array of fields to include in the attachment form 
    // $post is nothing but attachment record in the database 
    //  $post->post_type == 'attachment' 
    // attachments are considered as posts in WordPress. So value of post_type in wp_posts table will be attachment 
    // now add our custom field to the $form_fields array 
    // input type="text" name/id="attachments[$attachment->ID][custom1]" 
    $form_fields["rt-image-link"] = array(
     "label" => __("Custom Link"), 
     "input" => "text", // this is default if "input" is omitted 
     "value" => get_post_meta($post->ID, "_rt-image-link", true), 
       "helps" => __("To be used with special slider added via [rt_carousel] shortcode."), 
    ); 
    return $form_fields; 
} 
// now attach our function to the hook 
add_filter("attachment_fields_to_edit", "rt_image_attachment_fields_to_edit", null, 2); 

И это, чтобы сохранить его:

function rt_image_attachment_fields_to_save($post, $attachment) { 
    // $attachment part of the form $_POST ($_POST[attachments][postID]) 
     // $post['post_type'] == 'attachment' 
    if(isset($attachment['rt-image-link'])){ 
     // update_post_meta(postID, meta_key, meta_value); 
     update_post_meta($post['ID'], '_rt-image-link', $attachment['rt-image-link']); 
    } 
    return $post; 
} 
// now attach our function to the hook. 
add_filter("attachment_fields_to_save", "rt_image_attachment_fields_to_save", null , 2);