2010-10-19 1 views
0

Я использую функцию «вложения» WordPress, чтобы конечные пользователи моей темы могли загружать изображения, которые будут отображаться над содержимым сообщения (не вставлены в сообщение).Как добавить поле «Связывание ссылок» в редакторе вложений в WordPress?

Единственная проблема, с которой я столкнулся, заключается в том, что нет поля, позволяющего конечному пользователю указать ссылку, которая должна быть загружена, когда пользователь нажимает на одно из прикрепленных изображений. Я хотел бы добавить это поле в редактор вложений (тот, который отображает «Галерея» изображений, прикрепленных к сообщению).

В качестве альтернативы, и, возможно, кроме того, я хотел бы иметь возможность делать то же самое при просмотре изображений с помощью списка медиа-менеджеров.

В настоящее время я использую поле «описание», чтобы сохранить гиперссылку на изображение. и извлечения его, как так (отлично работает, но описание не является семантическим связать назначения):

if ($images = get_children(array('post_parent' => get_the_ID(),'post_type' => 'attachment','post_mime_type' => 'image', 'orderby' => 'menu_order ASC, ID', 'order' => 'DESC' ))) 
    { 
    foreach($images as $image) : 
     echo "<a href='".$image->post_content."'><img src='".wp_get_attachment_url($image->ID, 'medium')."' /></a>"; 
    endforeach; 
    } 
} 

ответ

0
function my_image_attachment_fields_to_edit($form_fields, $post) { 
    $form_fields["custom1"] = array( 
     "label" => __("Image Links To"), 
     "input" => "text", // this is default if "input" is omitted 
     "value" => get_post_meta($post->ID, "_custom1", true) 
    );  
    return $form_fields; 
} 

function my_image_attachment_fields_to_save($post, $attachment) { 
    if(isset($attachment['custom1'])){ 
     update_post_meta($post['ID'], '_custom1', $attachment['custom1']); 
    } 
    return $post; 
} 

add_filter("attachment_fields_to_edit", "my_image_attachment_fields_to_edit", null, 2); 
add_filter("attachment_fields_to_save", "my_image_attachment_fields_to_save", null, 2); 
Смежные вопросы