Você gostaria de atribuir automaticamente tags e categorias a envios de publicações? Com o complemento Post Submissions, você pode permitir que seus visitantes escolham as categorias para cada envio de post. Mas e se você quisesse atribuir essas categorias e até mesmo adicionar tags a essas postagens de dentro do formulário à medida que ele é enviado? Usando PHP, você pode atribuir facilmente uma categoria ou tag a essas postagens à medida que elas são enviadas.
Criando o formulário
Primeiro, você precisará criar um formulário Post Submission. Se precisar de ajuda com isso, consulte esta documentação.
Ao criar o formulário, não se esqueça de remover o campo de formulário Categories que é adicionado automaticamente como padrão quando você escolhe criar o modelo de formulário Blog Post Submission. Como vamos configurá-los manualmente com snippets de PHP, não queremos oferecer essa opção em nosso formulário.
Atribuição automática de tags e categorias
Para atribuir automaticamente tags e categorias aos envios de postagens, precisaremos 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 seu número de ID de categoria, consulte este artigo de nossos amigos do WPBeginner.
Como sabemos que esse formulário coletará especificamente envios apenas para artesanato, estamos direcionando o ID do formulário para 649. Em seguida, atribuiremos o ID da categoria 22, pois esse é o número de identificação da nossa categoria Artesanato, e também adicionaremos a tag artesanato à postagem.
Se precisar de ajuda para encontrar o número de identificação do formulário, consulte este tutorial.
Você gostaria de adicionar o URL da postagem na mensagem de confirmação quando o formulário for enviado? Confira nosso tutorial sobre Como incluir o URL da postagem de envios de posts na mensagem de confirmação.
Ação de referência
wpforms_post_submissions_process
PERGUNTAS FREQUENTES
P: Como faço para remover a categoria Unassigned?
R: Se quiser remover automaticamente a categoria que o WordPress atribui automaticamente a todos os novos posts, você pode usar este snippet.
A ID da categoria não atribuída normalmente é 1. Mas você ainda deve confirmar isso encontrando o número da ID da categoria da mesma forma que fez nas etapas acima.
/** * 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 );