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

[SOLUCIONADO] Creación de Plugin para Wordpress

Estas en el tema de Creación de Plugin para Wordpress en el foro de WordPress en Foros del Web. Hola a todos! Estoy metiendome un poco en la creación de plugins para wordpress y, siguiendo unos pasos que encontrado en una página tengo por ...
  #1 (permalink)  
Antiguo 23/09/2014, 04:42
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 4 meses
Puntos: 14
Pregunta Creación de Plugin para Wordpress

Hola a todos!

Estoy metiendome un poco en la creación de plugins para wordpress y, siguiendo unos pasos que encontrado en una página tengo por ahora el siguiente código:
Código PHP:
Ver original
  1. add_action('my-plugin/myPlugin.php','plugin_install');
  2. add_action('admin_menu','rating_add_option');
  3.  
  4. function plugin_install(){
  5.     //Funcion que genera la instalacion del plugin
  6.    
  7. }
  8.  
  9. function plugin_uninstall(){
  10.     //Funcion que genera la desinstalacion del plugin
  11.    
  12. }
  13.  
  14. add_action('plugin_activa/plugin_install.php','nombreFuncion');
  15. add_action('plugin_desactiva/plugin_install.php','nombreFuncion');
  16.  
  17. function plugin_panel(){
  18.     //Funcion que muestra el panel de administracion
  19.     include('template/template-plugin.php');
  20.     echo "<h1>".$_POST['saludo']."</h1>";
  21. }
  22.  
  23. function plugin_add_option(){
  24.     //Add la opcion del plugin al menu
  25.     add_management_page('Mi Plugin', 'Mi Plugin', 'manage_option', 'options_page_slug','plugin_panel');        
  26.    
  27. }

Me gustaría que apareciese como una sub-opción del menú de Ajustes pero no se por qué no me aparece... ¿dónde estoy metiendo la pata?
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #2 (permalink)  
Antiguo 23/09/2014, 08:57
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: Creación de Plugin para Wordpress

La función que buscas es la de add_submenu_page

Incluso en el ejemplo hacen exactamente lo que pides.
  #3 (permalink)  
Antiguo 23/09/2014, 09:42
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 4 meses
Puntos: 14
Respuesta: Creación de Plugin para Wordpress

Cita:
Iniciado por ArturoGallegos Ver Mensaje
La función que buscas es la de add_submenu_page

Incluso en el ejemplo hacen exactamente lo que pides.
Gracias! He probado y ahora por fin me está funcionando :)

Ahora bien...tengo otra duda (creo que puedo seguir el hilo de aquí).... una función que estoy creando que me devuelve un listado leyendo de una tabla en base de datos cómo podría hacer para que dicho contenido (o la página en sí) me recarge los cambios?

El plugin que estoy creando de ejemplo sólo inserta y lee datos no hace nada más por ahora, pero me gustaría hacer que al guardar en la bd, me recarge la página ya que justo debajo del input donde me meten los datos me gustaría mostrar el listado de los datos guardados
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #4 (permalink)  
Antiguo 23/09/2014, 11:12
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 9 meses
Puntos: 1146
Respuesta: Creación de Plugin para Wordpress

Puedes usar ajax http://codex.wordpress.org/AJAX

o bien si estas enviando los datos por post o get, haz que guarde/elimine/edite los datos antes de cargar la pagina.
  #5 (permalink)  
Antiguo 23/09/2014, 13:03
Avatar de AlejandroGalvez  
Fecha de Ingreso: noviembre-2013
Mensajes: 189
Antigüedad: 11 años, 1 mes
Puntos: 49
Respuesta: Creación de Plugin para Wordpress

Cita:
Iniciado por madman_18 Ver Mensaje
Gracias! He probado y ahora por fin me está funcionando :)

Ahora bien...tengo otra duda (creo que puedo seguir el hilo de aquí).... una función que estoy creando que me devuelve un listado leyendo de una tabla en base de datos cómo podría hacer para que dicho contenido (o la página en sí) me recarge los cambios?

El plugin que estoy creando de ejemplo sólo inserta y lee datos no hace nada más por ahora, pero me gustaría hacer que al guardar en la bd, me recarge la página ya que justo debajo del input donde me meten los datos me gustaría mostrar el listado de los datos guardados
Al menos que utilices AJAX para la administración de tu plugin, al guardar los datos, la página se recarga ya de por sí.
  #6 (permalink)  
Antiguo 24/09/2014, 03:02
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 4 meses
Puntos: 14
Respuesta: Creación de Plugin para Wordpress

Cita:
Iniciado por AlejandroGalvez Ver Mensaje
Al menos que utilices AJAX para la administración de tu plugin, al guardar los datos, la página se recarga ya de por sí.
Sí intuía que era Ajax, pero al empezar con la construcción de plugins no sé muy bien como estructurarlo.

¿Tendría que hacer Ajax pero en el template.html que tengo que me genera el código html no?

En la parte de php tengo una función que es la encargada de hacerme los insert/update y demás...cómo la llamaría desde javascript con ajax para que me funcionase? Siento ser tan torpe pero es que estoy empezando con esto de los plugins xD
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"
  #7 (permalink)  
Antiguo 24/09/2014, 05:12
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 4 meses
Puntos: 14
Respuesta: Creación de Plugin para Wordpress

Ya he encontrado cómo hacer la función en AJAX pero...me pasa una cosa curiosa...
Hago el siguiente código:
Código Javascript:
Ver original
  1. jQuery(document).ready(function(){
  2.         jQuery("#envio").click(function(){            
  3.             jQuery.post("admin-ajax.php",{data:jQuery("#direccion").serialize(),action:'lista_sites'},function(data){
  4.                 jQuery('#test').html(data);
  5.             },'json');            
  6.         });        
  7.     });
Y al hacer click me manda los siguientes datos:

accion: lista_sites
data: campo1=xxxxxxxx&campo2=yyyyyyyy

En teoría todo correcto pero, ahora en la función lista_sites hago esto:
Código PHP:
Ver original
  1. echo json_encode($_POST["campo1"]);

Y siempre me está devolviendo null....en teoría al recibir esos campos por post es así ¿no? ¿O me estoy saltando un paso? :paranoico:

Ya he encontrado el error...venía a la hora de pasarle los datos y en vez del .post he preferido usar también .ajax que lo veo más claro ^^
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"

Última edición por madman_18; 25/09/2014 a las 05:22 Razón: Ya lo he solucionado
  #8 (permalink)  
Antiguo 25/09/2014, 05:51
Avatar de madman_18  
Fecha de Ingreso: agosto-2010
Mensajes: 792
Antigüedad: 14 años, 4 meses
Puntos: 14
Respuesta: Creación de Plugin para Wordpress

Ahora me asalta otra duda.... Me gustaría que mi plugin fuera capaz de a la hora de instalar/desinstalar pudiese insertar/borrar la tabla de la base de datos que utilizo. Tengo el siguiente código:

Código PHP:
Ver original
  1. register_activation_hook(__FILE__, 'rating_install');
  2. register_deactivation_hook(__FILE__, 'rating_uninstall');
  3.  
  4. function rating_install(){
  5.     //Funcion que genera la instalacion del plugin
  6.     global $wpdb;
  7.     $table_name = $wpdb->prefix."rating";
  8.     $create = "CRETA TABLE ".$table_name." "
  9.             . "id int(11) NOT NULL AUTO_INCREMENT, "
  10.             . "url tinytext NOT NULL, "
  11.             . "descripcion tinytext NOT NULL "
  12.             . "PRIMARY KEY ('id')";
  13.     //$wpdb->query($create);
  14.     require_once(ABSPATH."wp-admin/includes/upgrade.php");
  15.     dbDelta($create);
  16. }
  17.  
  18. function rating_uninstall(){
  19.     //Funcion que genera la desinstalacion del plugin
  20.     global $wpdb;
  21.     $table_name = $wpbd->prefix."rating";
  22.     $drop = "DROP TABLE ".$table_name;
  23.     require_once(ABSPATH."wp-admin/includes/upgrade.php");
  24.     dbDelta($drop);
  25. }

Pero no me crea ni destruye la base de datos... según he leido en teoría es así la función (de hecho antes lo que intentaba era un $wpdb->query() hasta que he encontrado lo del dbDelta en la documentación).

¿Alguna idea de qué me falla?

Gracias!!!!

Edito: Crearé un nuevo post para esta duda porque no consigo solucionarlo.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, te convertes en algo muy diferente"

Última edición por madman_18; 29/09/2014 a las 02:57

Etiquetas: creación, página, php, plugin, post
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 13:31.