Gostaria de atribuir automaticamente etiquetas e categorias aos envios de mensagens? Com o complemento Envios de publicações, pode permitir que os seus visitantes escolham as categorias para cada envio de publicação. Mas e se quisesse atribuir estas categorias e até mesmo adicionar etiquetas a estas mensagens a partir do formulário, à medida que são submetidas? Utilizando PHP, pode facilmente atribuir uma categoria ou etiqueta a estas mensagens à medida que são submetidas.
Criar o formulário
Em primeiro lugar, tem de criar um formulário de envio de mensagens. Se precisar de ajuda com isto, consulte esta documentação.
Quando criar o seu formulário, não se esqueça de remover o campo de formulário Categories que é automaticamente adicionado como predefinição quando optar por criar o modelo de formulário Blog Post Submission. Uma vez que os vamos definir manualmente com snippets de PHP, não queremos dar esta opção no nosso formulário.
Atribuição automática de etiquetas e categorias
Para atribuir automaticamente etiquetas e categorias a envios de posts, precisamos de adicionar um snippet ao nosso site.
Se precisar de ajuda para adicionar snippets ao seu site, 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 o número de identificação da sua categoria, consulte este artigo dos nossos amigos do WPBeginner.
Uma vez que sabemos que este formulário irá recolher envios apenas para trabalhos manuais, estamos a definir o ID do formulário como 649. Em seguida, atribuímos o ID da categoria 22, porque esse é o número de identificação da nossa categoria Artesanato, e também adicionamos a tag artesanato ao post.
Se precisar de ajuda para encontrar o número de identificação do seu formulário, consulte este tutorial.
Gostaria de adicionar o URL da publicação na mensagem de confirmação quando o formulário é submetido? Consulte o nosso tutorial sobre Como incluir o URL da publicação de envios de publicações na mensagem de confirmação.
Ação de referência
wpforms_post_submissions_process
FAQ
P: Como é que posso remover a categoria Não atribuído?
R: Se pretender remover automaticamente a categoria que o WordPress atribui automaticamente a todas as novas mensagens, pode utilizar este snippet.
O ID da categoria não atribuída é normalmente 1. Mas deve confirmar este facto encontrando o número de ID da categoria da mesma forma que fez nos passos 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 );