¿Cómo usar la carga de medios en la página de opciones del tema?
Quiero implementar la carga de logo en mi página de opciones del tema. Actualmente estoy siguiendo este código
Lo que he hecho hasta ahora es cargar el jquery relacionado para la carga de medios
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');
}
Pregunta
¿Cómo implementar el formulario de carga usando el cargador de medios existente?
<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('Subir'); ?>" />
Quiero saber
- Cómo vincular el botón a
media-upload.php
- Después de que subamos la imagen y hagamos clic en el botón
Insertar en la entrada
en media-upload, la imagen se colocará en el camponame="theme_options_upload"
Háganmelo saber.

Lo más probable es que guardes la URL de la imagen y no toda la etiqueta de imagen, y hay un excelente tutorial que explica cómo usar el cargador de medios en tu propio tema o plugin: http://www.webmaster-source.com/2010/01/08/using-the-wordpress-uploader-in-your-plugin-or-theme/
actualización
En caso de usar esto en una meta box, necesitarás el ID del post, así que cambia el código JS de:
jQuery('#upload_image_button').click(function() {
formfield = jQuery('#upload_image').attr('name');
tb_show('', 'media-upload.php?type=image&TB_iframe=true');
return false;
});
a
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;
});

¡Bravo! Gracias diseño web. ¿Hay alguna pista sobre cómo agregar post_id=$post->ID
?

media-upload.php?post_id=ID&type=image&TB_iframe=true
en WP 3.1 requiere post_id=ID
si no obtendremos Notice: Undefined index: post_id. Si ponemos cualquier ID el botón Insertar en la entrada no se mostrará. ¿Cómo solucionar esto?

hmmm... exactamente igual que el blog que publicaste. Si lees los comentarios en el blog, encontrarás el mismo problema que yo. La mayoría preguntará cómo hacer que funcione con post_id

Hay algo extraño en este código, y he visto variaciones del mismo ejemplo publicadas numerosas veces, y es que esta línea.. formfield = jQuery('#upload_image').attr('name');
no tiene ningún propósito, la variable se define pero nunca se utiliza (así que puedes eliminar esa línea sin ningún efecto negativo).
