¿Le gustaría asignar automáticamente etiquetas y categorías a los envíos de entradas? Con el complemento Post Submissions, puedes permitir que tus visitantes elijan las categorías para cada envío. Pero, ¿qué pasaría si quisieras asignar estas categorías e incluso añadir etiquetas a estos mensajes desde el propio formulario de envío? Usando PHP, puede asignar fácilmente una categoría o etiqueta a estos mensajes a medida que se envían.
Creación del formulario
En primer lugar, deberá crear un formulario de envío de mensajes. Si necesitas ayuda con esto, consulta esta documentación.
Cuando crees tu formulario, no olvides eliminar el campo de formulario Categorías que se añade automáticamente por defecto cuando eliges crear la plantilla de formulario Envío de entradas de blog. Dado que vamos a configurar estos manualmente con fragmentos de PHP, no queremos dar esta opción en nuestro formulario.
Asignación automática de etiquetas y categorías
Para asignar automáticamente etiquetas y categorías a los envíos de entradas, tendremos que añadir un fragmento a nuestro sitio.
Si necesita ayuda para añadir fragmentos a su sitio, consulte este tutorial.
/** * Assign tags and categories to post submissions * * @link https://wpforms.com/developers/how-to-automatically-assign-tags-and-categories-to-post-submissions/ */ function wpf_dev_post_submissions_process( $post_id, $fields, $form_data ) { // If form ID is 649, run code below if ( 649 !== absint( $form_data[ 'id' ] ) ) { return; } // Craft Category ID is 22 - assign the ID 22 as the category wp_set_object_terms( $post_id, 22, 'category', true ); // Set tag on post to crafts wp_set_object_terms( $post_id, 'crafts', 'post_tag' ); } add_action( 'wpforms_post_submissions_process', 'wpf_dev_post_submissions_process', 10, 3 );
Para encontrar su número de identificación de categoría, consulte este artículo de nuestros amigos de WPBeginner.
Dado que sabemos que este formulario recogerá específicamente envíos sólo para manualidades, vamos a apuntar el id del formulario con 649. A continuación, vamos a asignar el id de categoría de 22 porque este es el número de identificación de nuestra categoría de Artesanía, así como también añadir la etiqueta de artesanía a la entrada.
Si necesita ayuda para encontrar el número de identificación de su formulario, consulte este tutorial.
¿Quieres añadir la URL del post en el mensaje de confirmación cuando se envía el formulario? Echa un vistazo a nuestro tutorial sobre Cómo incluir la URL del post enviado en el mensaje de confirmación.
Acción de referencia
wpforms_post_submissions_process
PREGUNTAS FRECUENTES
P: ¿Cómo elimino la categoría Sin asignar?
R: Si desea eliminar automáticamente la categoría que WordPress asigna automáticamente a todas las entradas nuevas, puede utilizar este fragmento.
El ID de categoría sin asignar suele ser 1. No obstante, debe confirmarlo buscando el número de ID de categoría del mismo modo que en los pasos anteriores.
/** * Assign tags and categories to post submissions * * @link https://wpforms.com/developers/how-to-automatically-assign-tags-and-categories-to-post-submissions/ */ function wpf_dev_post_submissions_process( $post_id, $fields, $form_data ) { // If form ID is 649, run code below if ( 649 !== absint( $form_data[ 'id' ] ) ) { return; } // Craft Category ID is 22 - assign the ID 22 as the category wp_set_object_terms( $post_id, 22, 'category', true ); // Remove the Unassigned category name from all new posts wp_remove_object_terms( $post_id, 1, 'category', true ); // Set tag on post to crafts wp_set_object_terms( $post_id, 'crafts', 'post_tag' ); } add_action( 'wpforms_post_submissions_process', 'wpf_dev_post_submissions_process', 10, 3 );