Attenzione!

Questo articolo contiene codice PHP ed è destinato agli sviluppatori. Offriamo questo codice come cortesia, ma non forniamo supporto per personalizzazioni del codice o sviluppo di terze parti.

Per ulteriore assistenza, consulta il tutorial di WPBeginner su come aggiungere codice personalizzato.

Chiudi

Come assegnare automaticamente tag e categorie alle proposte di articoli

Vuoi assegnare automaticamente tag e categorie alle proposte di articoli? Con il componente aggiuntivo Post Submissions, puoi consentire ai tuoi visitatori di scegliere le categorie per ogni proposta di articolo. Ma cosa succede se volessi assegnare queste categorie e persino aggiungere tag a questi articoli dall'interno del modulo mentre viene inviato? Usando PHP, puoi facilmente assegnare una categoria o un tag a questi articoli mentre vengono inviati.

Creazione del modulo

Innanzitutto, dovrai creare un modulo Post Submission. Se hai bisogno di assistenza con questo, consulta questa documentazione.

Quando crei il tuo modulo, non dimenticare di rimuovere il campo modulo Categorie che viene aggiunto automaticamente come predefinito quando scegli di creare il modello di modulo Blog Post Submission. Poiché li imposteremo manualmente con snippet PHP, non vogliamo offrire questa opzione sul nostro modulo.

rimuovere il menu a discesa Categorie dal modello di modulo Post Submission

Assegnazione automatica di tag e categorie

Per assegnare automaticamente tag e categorie alle proposte di articoli, dovremo aggiungere uno snippet al nostro sito.

Se hai bisogno di assistenza nell'aggiunta di snippet al tuo sito, consulta 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 tuo numero ID categoria, consulta questo articolo dei nostri amici di WPBeginner.

Poiché sappiamo che questo modulo raccoglierà specificamente solo proposte di artigianato, stiamo puntando all'ID modulo 649. Quindi assegneremo l'ID categoria 22 perché questo è il numero ID per la nostra categoria Artigianato, oltre ad aggiungere anche il tag artigianato all'articolo.

Se hai bisogno di aiuto per trovare il tuo numero ID modulo, consulta questo tutorial.

ora questo snippet assegnerà tag e categorie alle proposte di articoli

Vuoi aggiungere l'URL all'articolo nel messaggio di conferma quando il modulo viene inviato? Dai un'occhiata al nostro tutorial su Come includere l'URL dell'articolo delle proposte di articoli nel messaggio di conferma.

Azione di riferimento

wpforms_post_submissions_process

FAQ

D: Come rimuovo la categoria Non assegnata?

R: Se desideri rimuovere automaticamente la categoria che WordPress assegna automaticamente a tutti i nuovi articoli, puoi utilizzare questo snippet.

L'ID della categoria Non assegnata è tipicamente 1. Ma dovresti comunque confermarlo trovando il numero ID della categoria nello stesso modo in cui hai 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 );