¿Cómo usar la carga de medios en la página de opciones del tema?

31 ene 2011, 07:09:37
Vistas: 29K
Votos: 6

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

  1. Cómo vincular el botón a media-upload.php
  2. 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 campo name="theme_options_upload"

Háganmelo saber.

0
Todas las respuestas a la pregunta 1
8

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&amp;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+'&amp;type=image&amp;TB_iframe=true');
 return false;
});
31 ene 2011 08:35:47
Comentarios

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

haha haha
31 ene 2011 09:00:10

usa global $post; y luego $post->ID

Bainternet Bainternet
31 ene 2011 09:15:39

media-upload.php?post_id=ID&amptype=image&amp;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?

haha haha
31 ene 2011 18:51:58

pega tu código

Bainternet Bainternet
31 ene 2011 19:07:51

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

haha haha
31 ene 2011 19:21:06

actualicé la respuesta

Bainternet Bainternet
31 ene 2011 19:37:40

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).

t31os t31os
1 feb 2011 13:50:50

En este caso tienes razón, pero lo he usado en diferentes casos donde utilizo múltiples campos para sobrescribir el envío al editor

Bainternet Bainternet
1 feb 2011 14:14:59
Mostrar los 3 comentarios restantes