Как использовать загрузку медиафайлов на странице настроек темы?
Я хочу реализовать загрузку логотипа на странице настроек моей темы. В настоящее время я следую этому коду
На данный момент я загрузил необходимый jquery для загрузки медиафайлов
function load_only() {
add_thickbox();
wp_enqueue_script('jquery-option', get_template_directory_uri() . '/admin/js/jquery.option.js', array('jquery','media-upload','thickbox','jquery-ui-core','jquery-ui-tabs'), '1.0');
}
Вопрос
Как реализовать форму загрузки, используя существующую систему загрузки медиафайлов?
<input id="theme_options_upload" type="text" name="theme_options_upload" value="<?php esc_attr_e( $options['theme_options_upload'] ); ?>" />
<input type="button" name="just_button" value="<?php esc_attr_e('Загрузить'); ?>" />
Я хочу узнать
- Как связать кнопку с
media-upload.php
- После того как мы загрузим изображение и нажмем кнопку
Вставить в запись
в окне media-upload, изображение должно быть помещено в полеname="theme_options_upload"
Дайте мне знать.

Скорее всего, вы сохраняете URL изображения, а не весь тег изображения, и есть отличное руководство, которое объясняет, как использовать медиазагрузчик в вашей собственной теме или плагине: http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/
Обновление
В случае использования этого в метабоксе вам понадобится ID записи, поэтому измените JS-код с:
jQuery('#upload_image_button').click(function() {
formfield = jQuery('#upload_image').attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
return false;
});
на
jQuery('#upload_image_button').click(function() {
formfield = jQuery('#upload_image').attr('name');
post_id = jQuery('#post_ID').val();
tb_show('', 'media-upload.php?post_id='+post_id+'&type=image&TB_iframe=true');
return false;
});

Браво! Спасибо за дизайн сайта. Есть подсказка, как добавить post_id=$post->ID
?

media-upload.php?post_id=ID&type=image&TB_iframe=true
в WordPress 3.1 требует post_id=ID
, иначе мы получим Notice: Undefined index: post_id. Если мы укажем любой ID, кнопка "Вставить в запись" не отображается. Как это исправить?

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

В этом коде есть одна странность, и я видел множество вариаций этого примера — строка formfield = jQuery('#upload_image').attr('name');
совершенно бессмысленна, переменная объявлена, но нигде не используется (так что эту строку можно спокойно удалить без каких-либо последствий).
