Hola que tal,

He hecho un plugin super sencillo que consta de un titulo, un texto y una imagen. Esta imagen es llamada mediante un url desde el administrador del widget.

Me gustaria que en vez de escribir la dirección de la imagen el usuario pueda seleccionarla desde un botón tal cual como :seleccionar imagen y se abra la ventana del media manager de imagenes.

He seguido este tutorial pero no abre la ventana.

http://www.paulund.co.uk/add-upload-media-library-widgets

el codigo de mi plugin es el siguiente (he tomado parte del código de uno que consegui en internet y simplemente lo adapté a mis necesidades)

Código :



<?php
/*
Plugin Name: Imagenes y Texto frontend
Plugin URI: http://behance.com/agarban
Description: Muestra imagenes y texto en el frontend.
Version: 1.0
Author: Alexei Garban
Author URI: http://behance.com/agarban
License: MIT
*/



/**
 * Creamos el widget
 *
 */
class WP_Widget_frontendit extends WP_Widget {

   function __construct()
   {
      $opciones = array(
         'classname'     => 'widget_frontendit',
         'description'   => 'Muestra imagenes y texto en el frontend'
      );
      parent::__construct('frontendit', 'frontend it', $opciones);
   }







function widget($args, $instance)
{
   // Extraemos los argumentos del area de widgets
        extract($args);
 
        $titulo = apply_filters('widget_title', $instance['titulo']);
        $texto = $instance['texto'];
        $imagen = $instance['imagen'];
 
       


       ?>


           

<img src="<?php echo $imagen; ?>">
  <h3><?php echo $titulo; ?></h3>
      <p><?php echo $texto; ?></p>





        <?php

}









   function update($new_instance, $old_instance)
{
   return array(
      'titulo'          => strip_tags($new_instance['titulo']),
      'texto'  => strip_tags($new_instance['texto']),
      'imagen'   => strip_tags ($new_instance['imagen']),
   );
}










function form($instance)
{
   // Obligamos a $instance a ser un array con todas las opciones disponibles
   $instance = wp_parse_args( (array) $instance, array(
               'titulo'  => 'Titulo',
               'texto'   => 'texto',
               'imagen'  => 'url',
   ));
   
   // Filtramos los valores para que se muestren correctamente en los formularios
   $instance['titulo'] = esc_attr($instance['titulo']);
   $instance['texto'] = esc_attr($instance['texto']);
   $instance['imagen'] = esc_attr($instance['imagen']);
   
   // Mostramos el formulario
   ?>
   
   <p>
      <label for="<?php echo $this->get_field_id('titulo'); ?>">Título:</label></p>
      <input value="<?php echo $instance['titulo']; ?>" class="widefat" type="text" id="<?php echo $this->get_field_id('titulo'); ?>" name="<?php echo $this->get_field_name('titulo'); ?>">
   </p>
   
   <p>
      <label for="<?php echo $this->get_field_id('texto'); ?>">Escribe Texto:</label></p>
      <input value="<?php echo $instance['texto']; ?>" class="widefat" type="text" id="<?php echo $this->get_field_id('texto'); ?>" name="<?php echo $this->get_field_name('texto'); ?>">
   </p>


   <p>
      <label for="<?php echo $this->get_field_id('imagen'); ?>">Url de la imagen:</label></p>
      <input value="<?php echo $instance['imagen']; ?>" class="widefat" type="text" id="<?php echo $this->get_field_id('imagen'); ?>" name="<?php echo $this->get_field_name('imagen'); ?>">
   </p>
   
   
   
   <?php
}

}


/**
 * Registramos el widget (Si no lo hacemos, WordPress no podrá detectarlo)
 * 
 */
function widget_register_frontendit()
{
   register_widget('WP_Widget_frontendit');
}
add_action('widgets_init', 'widget_register_frontendit');












//FIN
?>