Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

crear la opcion de subir una imagen desde el area de perfil

Estas en el tema de crear la opcion de subir una imagen desde el area de perfil en el foro de WordPress en Foros del Web. Hola amigos quiero saber como puedo crear la opcion en el profile del usuario. Por que lo tengo de la forma que se tiene que ...
  #1 (permalink)  
Antiguo 02/12/2014, 15:06
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 12 años, 3 meses
Puntos: 2
crear la opcion de subir una imagen desde el area de perfil

Hola amigos quiero saber como puedo crear la opcion en el profile del usuario. Por que lo tengo de la forma que se tiene que colocar el enlace pero quiero la opcion de que se pueda subir a mi hosting.
  #2 (permalink)  
Antiguo 02/12/2014, 15:47
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: crear la opcion de subir una imagen desde el area de perfil

Se utiliza
Código Javascript:
Ver original
  1. $('.add_img').click(function(){
  2.     var input_img = $(this).next();
  3.     var frame = wp.media({
  4.         title : 'Seleccionar imagen',
  5.         multiple : false,
  6.         library : { type : 'image'},
  7.         button : { text : 'Insert' }
  8.     });
  9.     frame.on('select',function() {
  10.         attachment = frame.state().get('selection').first().toJSON();
  11.         input_img.val(attachment['url']);
  12.     });
  13.     frame.open();
  14. });

Si no te funciona haz que carge esto en la pagina donde vas a ejecutarlo
Código PHP:
Ver original
  1. wp_enqueue_media();
  #3 (permalink)  
Antiguo 02/12/2014, 16:05
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: crear la opcion de subir una imagen desde el area de perfil

Cita:
Iniciado por ArturoGallegos Ver Mensaje
Se utiliza
Código Javascript:
Ver original
  1. $('.add_img').click(function(){
  2.     var input_img = $(this).next();
  3.     var frame = wp.media({
  4.         title : 'Seleccionar imagen',
  5.         multiple : false,
  6.         library : { type : 'image'},
  7.         button : { text : 'Insert' }
  8.     });
  9.     frame.on('select',function() {
  10.         attachment = frame.state().get('selection').first().toJSON();
  11.         input_img.val(attachment['url']);
  12.     });
  13.     frame.open();
  14. });

Si no te funciona haz que carge esto en la pagina donde vas a ejecutarlo
Código PHP:
Ver original
  1. wp_enqueue_media();
Disculpa mi ignorancia pero no se como colocar lo que me dices ya que desconosco el tema y me estas hablando como si conociera de esto mucho igual que tu.

este es el codigo que tengo en function.php para lo que necesito como funciona es se coloca la url de la imagen y se llama en el archivo del author:

Código PHP:
<?php
//Imagen de portada
function portada_add_custom_user_profile_fields$user ) {
?>
    <br />



<table class="form-table">
<tbody>
                <tr>
            <th style="margin:15px;"><label for="portada">Imagen de portada</label></th>
            
            <th style="float:left;width:50%;">            
                <input type="text" name="portada" id="portada" value="<?php echo esc_attrthe_author_meta'portada'$user->ID ) ); ?>" class="regular-text"><br />Coloca el enlace de tu imagen de portada tamaño recomendado 1010x310.</th>
            
            
        </tr>
</tbody>
</table>

<?php }

function 
portada_save_custom_user_profile_fields$user_id ) {
    
    if ( !
current_user_can'edit_user'$user_id ) )
        return 
FALSE;
    
    
update_usermeta$user_id'portada'$_POST['portada'] );
}

add_action'show_user_profile''portada_add_custom_user_profile_fields' );
add_action'edit_user_profile''portada_add_custom_user_profile_fields' );

add_action'personal_options_update''portada_save_custom_user_profile_fields' );
add_action'edit_user_profile_update''portada_save_custom_user_profile_fields' );
Y se llama asi:

Código HTML:
Ver original
  1. <img src="<?php echo $author->portada; ?>" style="min-width:980px;max-width:980px;height:310px;" />

como coloco lo que me dices?
  #4 (permalink)  
Antiguo 02/12/2014, 20:13
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: crear la opcion de subir una imagen desde el area de perfil

valla pensé que al envolverlo en el highlight de javascript sobre entenderías que tenias que ponerlo e algún archivo js que cargues en esa pagina o bien, colocarlo entre las etiquetas <script> y </script> junto con el código html que imprimes en dicha pagina.

Si lees mi código es bastante claro, si te sirve de pista uso jquery para identificar los elementos, así asignar el evento click y en su momento asignarle el valor de la imagen.

quizás donde me falto ser mas explicito fue con wp_enqueue_media();

este se utiliza en la misma funcion que uses para cargar tus archivos css o js dentro del admin

suele ser
add_action('admin_enqueue_scripts', 'nombre funcion');


si tienes dudas no le tengas miedo a experimentar, también tienes la documentación de wordpress y google que nunca falla.... si de plano no te sale, regresa y pregunta por algo especifico y con gusto trato de orientarte.
  #5 (permalink)  
Antiguo 03/12/2014, 05:20
 
Fecha de Ingreso: julio-2008
Mensajes: 543
Antigüedad: 16 años, 4 meses
Puntos: 56
Respuesta: crear la opcion de subir una imagen desde el area de perfil

otra opcion, sería usar un plugin que te lo haga. En el repositorio hay unos cuantos, es ir probando a ver cual te gusta más:
https://wordpress.org/plugins/search.php?q=avatar
__________________
Un saludo! :-)
Quiero ser el primero
  #6 (permalink)  
Antiguo 04/12/2014, 13:00
Avatar de satanson123  
Fecha de Ingreso: julio-2012
Mensajes: 217
Antigüedad: 12 años, 3 meses
Puntos: 2
Respuesta: crear la opcion de subir una imagen desde el area de perfil

Bueno amigo lo coloque de esta forma pero no me funciona, me puedes decir donde me equivoco?

Código PHP:
Ver original
  1. //Imagen de portada
  2. function portada_add_custom_user_profile_fields( $user ) {
  3. ?>
  4.     <br />
  5.  
  6.  
  7. <script type="text/javascript">
  8. $('.add_img').click(function(){
  9.     var input_img = $(this).next();
  10.     var frame = wp.media({
  11.         title : 'Seleccionar imagen',
  12.         multiple : false,
  13.         library : { type : 'image'},
  14.         button : { text : 'Insert' }
  15.     });
  16.     frame.on('select',function() {
  17.         attachment = frame.state().get('selection').first().toJSON();
  18.         input_img.val(attachment['url']);
  19.     });
  20.     frame.open();
  21. });
  22. </script>
  23.  
  24. <table class="form-table">
  25. <tbody>
  26.                 <tr>
  27.             <th style="margin:15px;"><label for="portada">Imagen de portada</label></th>
  28.            
  29.             <th style="float:left;width:50%;">         
  30.                 <input type="text" name="portada" id="portada" value="<?php echo esc_attr( the_author_meta( 'portada', $user->ID ) ); ?>" class="regular-text"><br />Coloca el enlace de tu imagen de portada tamaño recomendado 1010x310.</th>
  31.             <th><input type="button" class="add_img" name="add_img" value="add_img" onclick="wp_enqueue_media()" /></th>
  32.            
  33.         </tr>
  34. </tbody>
  35. </table>
  36.  
  37. <?php }
  38.  
  39. function portada_save_custom_user_profile_fields( $user_id ) {
  40.    
  41.     if ( !current_user_can( 'edit_user', $user_id ) )
  42.         return FALSE;
  43.    
  44.     update_usermeta( $user_id, 'portada', $_POST['portada'] );
  45. }
  46. add_action('admin_enqueue_scripts', 'nportada_add_custom_user_profile_fields');
  47. add_action( 'show_user_profile', 'portada_add_custom_user_profile_fields' );
  48. add_action( 'edit_user_profile', 'portada_add_custom_user_profile_fields' );
  49.  
  50. add_action( 'personal_options_update', 'portada_save_custom_user_profile_fields' );
  51. add_action( 'edit_user_profile_update', 'portada_save_custom_user_profile_fields' );
  #7 (permalink)  
Antiguo 04/12/2014, 15:42
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: crear la opcion de subir una imagen desde el area de perfil

wp_enqueue_media() no es una función javascript que puedas invocar con el evento onclick

Por favor lee mis mensajes y lee el código (sobre todo el código), si lo lees entenderás como debe ir todo.

Etiquetas: area, opcion, perfil
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:00.