| 1 | <?php |
|---|
| 2 | /* |
|---|
| 3 | Plugin Name: Attachment Credit Field |
|---|
| 4 | Description: Adds a credit field to the attachment details pane to add attribution information. |
|---|
| 5 | Version: 0.2 |
|---|
| 6 | Author: Michael V Cuomo |
|---|
| 7 | Author URI: http://www.michaelvcuomo.com |
|---|
| 8 | License: GPL2 |
|---|
| 9 | License URI: https://www.gnu.org/licenses/gpl-2.0.html |
|---|
| 10 | */ |
|---|
| 11 | |
|---|
| 12 | /* Start adding functions below this line */ |
|---|
| 13 | |
|---|
| 14 | /* |
|---|
| 15 | * Notes: |
|---|
| 16 | * |
|---|
| 17 | * This plugin was developed as a test to see how to add a credit field to the attachment page. While it |
|---|
| 18 | * does work, there are some differences between this field and the "standard" fields. Namely, this returns |
|---|
| 19 | * the credit field as part of a table, while the others are being returned as a label with CSS classes. This |
|---|
| 20 | * therefore is affecting CSS styles in some areas, like the attachment editor page. Also, looking through |
|---|
| 21 | * the media.php file shows there is a lot more going on with current attachment details, like returning shortcodes |
|---|
| 22 | * for the caption--img_caption_shortcode()-- and such. I am not that experienced with working with WordPress code |
|---|
| 23 | * so I'm not sure how much I can help. Anyone with more experience might be better, or this might want to be included |
|---|
| 24 | * in the current code, like in the array in get_attachment_fields_to_edit(). |
|---|
| 25 | * |
|---|
| 26 | * I haven't yet been able to figure out how to display this in my theme. I currently am using the caption field for |
|---|
| 27 | * image attribution for Featured Images and display it using: |
|---|
| 28 | * echo '<cite class="feat-image-caption">' . get_post(get_post_thumbnail_id())->post_excerpt . '</cite>'; |
|---|
| 29 | * It is not working by adding post-credit, though. Just keep that in mind -- I'll still mess around and update |
|---|
| 30 | * if I find a solution. |
|---|
| 31 | * |
|---|
| 32 | */ |
|---|
| 33 | |
|---|
| 34 | function mvc_add_attachment_credit_field( $form_fields, $post ) { |
|---|
| 35 | // See wp-admin/includes/media.php function get_attachment_fields_to_edit() line 1164 |
|---|
| 36 | // |
|---|
| 37 | // Add new form field to attachment details page called Credit. |
|---|
| 38 | // Credit field allows users to add attribution information to media files. |
|---|
| 39 | |
|---|
| 40 | $field_value = get_post_meta( $post->ID, 'post-credit', true ); |
|---|
| 41 | |
|---|
| 42 | $form_fields['post-credit'] = array( |
|---|
| 43 | 'label' => __( 'Credit' ), |
|---|
| 44 | 'input' => 'textarea', |
|---|
| 45 | 'value' => $field_value ? $field_value : '', |
|---|
| 46 | //'helps' => __( 'Information to credit the source of this uploaded file.' ) |
|---|
| 47 | ); |
|---|
| 48 | |
|---|
| 49 | return $form_fields; |
|---|
| 50 | } |
|---|
| 51 | |
|---|
| 52 | // Attach function to hook |
|---|
| 53 | add_filter( 'attachment_fields_to_edit', 'mvc_add_attachment_credit_field', 10, 2 ); |
|---|
| 54 | |
|---|
| 55 | // Save Credit field |
|---|
| 56 | function mvc_save_attachment_credit( $attachment_id ) { |
|---|
| 57 | |
|---|
| 58 | if ( isset( $_REQUEST['attachments'][$attachment_id]['post-credit'] ) ) { |
|---|
| 59 | |
|---|
| 60 | $credit = $_REQUEST['attachments'][$attachment_id]['post-credit']; |
|---|
| 61 | |
|---|
| 62 | update_post_meta( $attachment_id, 'post-credit', $credit ); |
|---|
| 63 | } |
|---|
| 64 | } |
|---|
| 65 | // Attach function to hook -- THIS ONE DOES WORK |
|---|
| 66 | add_action( 'edit_attachment', 'mvc_save_attachment_credit' ); |
|---|
| 67 | |
|---|
| 68 | // Original - Attach function to hook -- THIS ONE NOT WORKING FOR ME - won't save info |
|---|
| 69 | //add_filter ( 'attachment_fields_to_save','mvc_save_attachment_credit' ); |
|---|
| 70 | |
|---|
| 71 | /* Stop adding functions below this line */ |
|---|
| 72 | |
|---|
| 73 | ?> |
|---|