¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Cómo asignar automáticamente etiquetas y categorías a las envíos de entradas

¿Le gustaría asignar automáticamente etiquetas y categorías a los envíos de entradas? Con el complemento de envíos de entradas, puede permitir que sus visitantes elijan las categorías para cada envío de entrada. Pero, ¿y si quisiera asignar estas categorías e incluso agregar etiquetas a estas entradas desde el propio formulario mientras se envía? Usando PHP, puede asignar fácilmente una categoría o etiqueta a estas entradas a medida que se envían.

Creación del formulario

Primero, necesitará crear un formulario de Envío de entradas. Si necesita ayuda con esto, consulte esta documentación.

Al crear su formulario, no olvide eliminar el campo de formulario Categorías que se agrega automáticamente por defecto cuando elige crear la plantilla de formulario Envío de entradas de blog. Dado que configuraremos esto manualmente con fragmentos de PHP, no queremos ofrecer esta opción en nuestro formulario.

eliminar el menú desplegable de Categorías del formulario de envío de entradas

Asignación automática de etiquetas y categorías

Para asignar automáticamente etiquetas y categorías a los envíos de entradas, necesitaremos agregar un fragmento a nuestro sitio.

Si necesita ayuda para agregar 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 el número de ID de su categoría, consulte este artículo de nuestros amigos de WPBeginner.

Dado que sabemos que este formulario recopilará específicamente envíos solo de manualidades, estamos apuntando al ID del formulario 649. Luego asignaremos el ID de categoría 22 porque este es el número de ID de nuestra categoría Manualidades, además de agregar la etiqueta manualidades a la entrada.

Si necesita ayuda para encontrar el número de ID de su formulario, consulte este tutorial.

ahora este fragmento asignará etiquetas y categorías a los envíos de entradas

¿Le gustaría agregar la URL de la entrada en el mensaje de confirmación cuando se envía el formulario? Consulte nuestro tutorial sobre Cómo incluir la URL de la entrada de envíos de entradas 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 usar este fragmento.

El ID de la categoría Sin asignar suele ser 1. Pero aún así debería confirmarlo encontrando el número de ID de la categoría de la misma manera que lo hizo 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 );