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.
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.
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 );