Post on 13-Jun-2015
description
WordPress: No más plugins
Diego Lerma
Plugins
● Existen 18 365 plugins en el repositorio oficial de WordPress.
● Se han realizado hasta el momento 267 994 015 descargas de plugins.
● Toda instalación de nueva ya viene con 2 plugins pre-instalados.
● Se puede decir que prácticamente hay plugins para (casi) todo.
Problema común
Mi cliente / Mi amigo / Mi novi@ / Yonecesita(o)
Permitir al usuario a crear un nuevo post.
Solución común
Busco un plugin!
Solución común
Solución común
Lo encontré!!!!
Solución común
http://perishablepress.com/user-submitted-posts/
Solución común
Holy crap! Esta en InglesóChs! Le falta algo!!!!
Solución común
Solución común
Googleo una respuesta..."A alguien ya le debe haber pasado"Uso Google TranslateLo hice!
Solución común
Solución común
Como este problema hay muchos¿Que pasaría si todos los solucionamos así?
Resultado final
Implicancias
Nuevo servidor!
Resultados en el Mundo Real™
Perdida de tiempo y dinero
Plugins
● Nos hemos acostumbrado a resolver problemas con un plugin que solucione (parcialmente) nuestro problema.
● Al final, siempre terminamos metiendo mano al plugin ya sea para arreglar algo del CSS o por lo menos traducirlo.
● Todos ya sabemos al menos lo básico de PHP y el que menos ha oido hablar del CODEX
Solución
Puedo hacerlo yo?
Solución
● Soy un diseñador○ Entiendo algo de PHP ○ Al menos sé como mandar formularios por
que todos mis clientes me piden al menos un formulario de contacto.
○ Sé concatenar variables!● Soy un coder que no le da miedo el Codex
Solución
Solución
wp_insert_post($post);
FTW!http://codex.wordpress.org/Function_Reference/wp_insert_post
Solución
Caso real!
www.discotecaslima.comGuia de discotecas en Lima
Solución
Creamos un formulario como cualquier otro
Solución<form name="agregar" method="post" action="http://discotecaslima.com/agregar"> <p><label for="txt_nombre">Nombre del local</label><br /><input type="text" name="nombre" id="txt_nombre" /></p> <p><label for="txt_distrito">Distrito</label><br /><input type="text" name="distrito" id="txt_distrito" /></p> <p><label for="txt_direccion">Dirección del local</label><br /><input type="text" name="direccion" id="txt_direccion" /></p> <p><label for="txt_referencia">Algunas referencias?</label><br /><input type="text" name="referencia" id="txt_referencia" /></p> <p><label for="txt_telefono">Teléfono del local</label><br /><input type="text" name="telefono" id="txt_telefono" /></p> <p><label for="txt_web">Web del local</label><br /><input type="text" name="web" id="txt_web" /></p> <p><label for="txt_FB">FB del local</label><br /><input type="text" name="facebook" id="txt_FB" /></p> <p><label for="txt_horario">Horario de atención</label><br /><input type="text" name="horario" id="txt_horario" /></p> <p><label for="txt_chela">Costo de cerveza o promedio de tragos</label><br /><input type="text" name="chela" id="txt_chela" /></p> <p><label for="txt_comentarios">Comentanos algo del local</label><br /><textarea cols="50" rows="10" name="comentarios" id="txt_comentarios" /></textarea></p> <p><label for="txt_recomendaciones">Recomendaciones</label><br /><textarea cols="50" rows="10" name="recomendaciones" id="txt_nombre"></textarea></p><p><input type="submit" name="enviar" value="Recomendar local" /></form>
Solución
Leemos todas las datos que hemos pedido del usuario
Solución
$nombre = $_POST["nombre"];$distrito = $_POST["distrito"];$direccion = $_POST["direccion"];$referencia = $_POST["referencia"];$telefono = $_POST["telefono"];$web = $_POST["web"];$FB = $_POST["facebook"];$horario = $_POST["horario"];$chela = $_POST["chela"];$comentarios = $_POST["comentarios"];$recomendaciones = $_POST["recomendaciones"];
Solución
Concatenamos las variables a nuestro gusto y necesidad
Solución$contenido = nl2br($comentarios);$contenido .= "<p><strong>Dirección de " . $nombre . "</strong>: " . $direccion . "</p>";$contenido .= "<p><strong>Distrito de " . $nombre . "</strong>: " . $distrito . "</p>";$contenido .= "<p><strong>Como llegar a " . $nombre . "</strong>: " . $referencia . "</p>";$contenido .= "<p><strong>Teléfono de " . $nombre . "</strong>: " . $telefono . "</p>";$contenido .= "<p><strong>Página web de " . $nombre . "</strong>: " . $web . "</p>";$contenido .= "<p><strong>Facebook de " . $nombre . "</strong>: " . $FB . "</p>";$contenido .= "<p><strong>Horario de atención de " . $nombre . "</strong>: " . $horario . "</p>";$contenido .= "<p><strong>Costo de la chela " . $nombre . "</strong>: " . $chela . "</p>";
Solución
Usamos el codex!
Solución
$post = array( 'comment_status' => 'open', 'ping_status' => 'open', 'post_author' => 6, 'post_content' => $contenido, 'post_date' => date("Y-m-d H:i:s"), 'post_date_gmt' => date("Y-m-d H:i:s"), 'post_name' => $nombre, 'post_status' => 'draft', 'post_title' => $nombre, 'post_type' => 'post', 'post_excerpt' => $recomendaciones ); wp_insert_post( $post );?><p>Gracias por tu recomendación de <?php echo $nombre; ?>.</p><p>Será revisado por nuestro equipo juerguero y luego será aprobado.</p>
Solución
http://diegolerma.info
Gracias