Come assegnare automaticamente tag e categorie agli invii dei post

Volete assegnare automaticamente tag e categorie ai post inviati? Con l'addon Post Submissions, potete permettere ai vostri visitatori di scegliere le categorie per ogni post inviato. Ma se voleste assegnare queste categorie e persino aggiungere tag a questi post dall'interno del modulo mentre vengono inviati? Utilizzando PHP, è possibile assegnare facilmente una categoria o un tag a questi post mentre vengono inviati.

Creazione del modulo

Per prima cosa, è necessario creare un modulo per l'invio di un post. Se avete bisogno di assistenza, consultate questa documentazione.

Quando si crea il modulo, non dimenticare di rimuovere il campo del modulo Categorie, che viene aggiunto automaticamente come predefinito quando si sceglie di creare il modello di modulo Presentazione di post di blog. Poiché li imposteremo manualmente con gli snippet PHP, non vogliamo dare questa opzione al nostro modulo.

rimuovere il menu a tendina delle categorie dal modello del modulo di invio dei messaggi.

Assegnazione automatica di tag e categorie

Per assegnare automaticamente tag e categorie ai post inviati, dobbiamo aggiungere uno snippet al nostro sito.

Se avete bisogno di assistenza per aggiungere gli snippet al vostro sito, consultate questo 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 );

Per trovare il numero ID della categoria, consultare questo articolo dei nostri amici di WPBeginner.

Dal momento che sappiamo che questo modulo raccoglierà solo contributi per l'artigianato, selezioneremo l'id del modulo con 649. Assegneremo poi l'id della categoria 22, perché è il numero identificativo della categoria Artigianato, e aggiungeremo il tag Artigianato al post.

Se avete bisogno di aiuto per trovare il numero ID del vostro modulo, consultate questa guida.

ora questo snippet assegnerà i tag e le categorie ai post inviati

Volete aggiungere l'URL del post nel messaggio di conferma dell'invio del modulo? Consultate il nostro tutorial su Come includere l'URL del post inviato nel messaggio di conferma.

Azione di riferimento

wpforms_post_submissions_process

FAQ

D: Come posso rimuovere la categoria Non assegnato?

R: Se si desidera rimuovere automaticamente la categoria che WordPress assegna automaticamente a tutti i nuovi post, è possibile utilizzare questo snippet.

L'ID della categoria non assegnata è in genere 1. Ma è comunque necessario confermarlo trovando il numero dell'ID della categoria nello stesso modo in cui è stato fatto nei passaggi precedenti.


/**
 * 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 );