Publicación a través del extremo frontal Inserción

Hoy, comenzaremos la miniserie sobre cómo insertar publicaciones a través del extremo frontal. Estaremos cubriendo una variedad de diferentes aspectos en este tutorial, comenzando con la validación de formularios y la inserción de publicaciones. Entonces, preparémonos y comencemos!


Introducción

Nuestro objetivo después de completar esta miniserie debería permitirle al usuario enviar publicaciones a través de la interfaz, junto con la edición y el envío de la publicación a la papelera; Todo sin estar en el Panel de WordPress. Estos métodos se pueden usar en un tema o complemento y pueden ser muy adaptables para lograr envíos muy avanzados y complejos..

La demostración y los archivos de descarga son un tema reducido que se ha creado solo para los fines de este tutorial..

Así que abre tu editor de texto favorito y comencemos!


Paso 1 Creando un formulario

Comenzamos creando un formulario que permitirá al usuario ingresar los detalles con respecto a la creación de una publicación. Mientras construimos esto en un tema, comencemos creando una nueva plantilla de página y llamémosla template-insert-posts.php. Luego comenzaremos a construir nuestro formulario e insertaremos algunas etiquetas y campos de entrada para el título de la publicación y el área de texto para el cuerpo:

 

Lo que acabamos de crear es un formulario muy simple que tiene una entrada de texto para que el usuario ingrese el título y un área de texto para el contenido de la publicación..

Ahora que hemos establecido nuestros fundamentos, tendremos que realizar una validación de formularios para garantizar que obtengamos el contenido correcto y que no tengamos ataques maliciosos contra nuestros envíos..


Paso 2 Validación de formulario

Estaremos utilizando dos formas diferentes de validación. Utilizaremos el complemento de validación jQuery, junto con la validación tradicional de PHP. Comencemos primero con el lado de la validación de jQuery e inicialicemos nuestro script de validación. Nos aseguraremos de registrar y poner en cola los scripts dentro de nuestro funciones.php expediente. Junto con esto, crearemos un archivo JavaScript en blanco donde manejaremos todos nuestros jQuery personalizados; recuerde registrarse y poner en cola este archivo para la inicialización. Esto debería verse algo como esto:

 // jquery personalizado wp_register_script ('custom_js', get_template_directory_uri (). '/js/jquery.custom.js', array ('jquery'), '1.0', TRUE); wp_enqueue_script ('custom_js'); // validación wp_register_script ('validation', 'http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.min.js', array ('jquery')); wp_enqueue_script ('validation');

Genial, hemos registrado y puesto en cola todos nuestros scripts necesarios. Ahora abriremos nuestro archivo jQuery personalizado y comenzaremos a inicializar nuestro complemento de validación jQuery; Abriremos nuestro archivo JavaScript en blanco y escribiremos la siguiente línea de código para crear nuestra Validación de jQuery:

 jQuery (document) .ready (function () jQuery ("# ​​primaryPostForm"). validate (););

Todo lo que hemos hecho aquí es obtener el ID de nuestro formulario y aplicar el validar método para esto. Ahora que tenemos esto en su lugar, volveremos a nuestro template-insert-posts.php Archivo y asegúrese de que hemos puesto el necesario clase en los campos de entrada que se requieren.

Toda la validación de jQuery está en su lugar, pasemos a la validación de PHP.

Nuestra validación debe garantizar que ingresemos un título, y si la Validación de jQuery falla, entonces volverá a la Validación de PHP. Hacemos esto creando primero una variable de PHP para almacenar el mensaje de error y luego creamos algunas pruebas condicionales.

Inicialmente probamos si el usuario ha enviado el formulario, y luego probamos si nuestra variable de mensaje de error de PHP está en blanco. Necesitamos insertar el siguiente código que hace esto justo arriba de nuestro :

 

Nuestra validación de PHP está en su lugar. Vamos a asegurarnos de que el valor que estamos enviando sea el mismo que el usuario ingresó, y lo hacemos insertando el siguiente código en nuestro título de la entrada campo de entrada:

 valor = ""

También debemos hacer lo mismo para nuestra área de texto, pero funciona de manera ligeramente diferente; En lugar de establecer un valor, insertamos el siguiente código dentro de nuestro Publicar Contenido etiquetas textarea:

 

Finalmente, debemos asegurarnos de que estamos emitiendo nuestro mensaje de error, y lo hacemos comprobando si nuestra variable de mensaje de error está vacía. Si nuestra variable no está vacía, envíe el mensaje, de lo contrario no generará nada. El siguiente código logra esto:

   

Ahora que hemos configurado nuestro formulario con validación, podemos pasar a insertar el contenido en una publicación. Vamonos…


Paso 3 Enviar una publicación

Ahora enviaremos los datos de nuestro formulario a una publicación real. Hacemos esto usando la función de WordPress wp_insert_post. Esta función nos permite insertar publicaciones, por lo que utilizaremos esto para nuestra ventaja..

Comenzamos creando primero una variable para mantener todos nuestros diferentes elementos. Puede definir un montón de elementos diferentes y puede leer sobre el Códice de WordPress. Inserte el siguiente código, justo debajo del código de validación de su formulario:

 $ post_information = array ('post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' => $ _POST ['postContent'], 'post_type' => 'post', 'post_status' => 'pendiente '); wp_insert_post ($ post_information);

El código que acabamos de insertar crea una matriz y asigna valores a los diferentes elementos. Para el título de la entrada Elemento, POSTAMOS nuestra título de la entrada valoramos, y POSTAMOS nuestra Publicar Contenido para nuestro Publicar Contenido elemento.

También configuramos nuestro tipo de publicación a enviar, ya que enviaremos el tipo de publicación predeterminado, pero puede pasar cualquier tipo de publicación personalizada a este campo. Finalmente, estamos configurando el estado de la publicación como pendiente para que el administrador pueda confirmar la publicación antes de publicarla..

Entonces ejecutamos la función. wp_insert_post y pasar nuestra matriz con todos nuestros elementos y los datos asignados a ellos.

¡Eso es! Ahora podemos agregar publicaciones a través del extremo frontal, pero aún no hemos terminado. Tenemos algunos problemas de seguridad que necesitamos para compensar. Comenzamos insertando un wp_nonce_field. Si no sabe qué es un campo nonce, el Códice de WordPress lo explica perfectamente:

El campo nonce se usa para validar que los contenidos del formulario provienen de la ubicación en el sitio actual y no en otra parte.

Esto nos ayudará contra cualquier problema de seguridad y evitará ataques maliciosos. Todo lo que tenemos que hacer es insertar el siguiente código justo antes de nuestro botón de envío:

 

Junto con esto, editaremos la validación de nuestro formulario para asegurarnos de que solo enviemos contenido una vez que el campo nonce haya sido confirmado de que estamos enviando el contenido desde el sitio web, lo hacemos reemplazando nuestra declaración condicional de validación. Su código final con la validación y el envío de los datos debe ser el siguiente:

 if (isset ($ _POST ['submit']) && isset ($ _POST ['post_nonce_field']) && wp_verify_nonce ($ _POST ['post_nonce_field'], 'post_nonce')) if (trim ($ _POST ['postTitle' ]) === ") $ postTitleError = 'Por favor ingrese un título.'; $ hasError = true; $ post_information = array ('post_title' => wp_strip_all_tags ($ _POST ['postTitle']), 'post_content' = > $ _POST ['postContent'], 'post_type' => 'post', 'post_status' => 'pendiente'); wp_insert_post ($ post_information);

Finalmente, solo por un extra, estableceremos una redirección una vez que el usuario haya enviado la información, para que los usuarios no puedan presionar Enviar varias veces y sigan ingresando los mismos datos en nuestras publicaciones. Haremos esto en un nivel muy básico..

Como wp_insert_post devuelve un ID que usaremos para nuestra ventaja, y devolveremos el ID a una variable que utilizaremos para asegurarnos de que no estamos redireccionando si no se creó una publicación.

Haremos esto asignando nuestros wp_insert_post función a una variable, de la siguiente manera:

 $ post_id = wp_insert_post ($ post_information);

Luego ejecutaremos una declaración condicional para redirigir solo si tenemos una ID de publicación, luego usaremos WordPress redirigir funciona y pasa el home_url a esto. El código que insertará es el siguiente:

 if ($ post_id) wp_redirect (home_url ()); salida; 

Todo listo…


Conclusión

Eso es lo básico y lo básico sobre cómo insertar publicaciones a través del extremo frontal. Hemos cubierto mucho, primero creando un formulario, validando el formulario y enviando nuestros datos a una publicación pendiente!

En la siguiente parte, profundizaremos un poco más en la edición y eliminación de publicaciones a través de la interfaz, lo que se vuelve un poco más complicado, pero puede ser muy útil.!

Me gustaría dar las gracias por pasar el tiempo leyendo mi tutorial, espero que haya sido de ayuda. Por favor, siéntase libre de dejar comentarios y haré todo lo posible para ayudar y responder, si no, siempre puede contactarme directamente a través de mi sitio web: www.VinnySingh.co o Twitter @VinnySinghUK

Estén atentos para la parte 2!