Atenção!

Este artigo contém código PHP e destina-se a programadores. Oferecemos este código como cortesia, mas não prestamos suporte para personalizações de código ou desenvolvimento de terceiros.

Para orientação adicional, consulte o tutorial da WPBeginner sobre como adicionar código personalizado.

Ignorar

Como Atribuir Automaticamente Tags e Categorias a Submissões de Posts

Gostaria de atribuir automaticamente etiquetas e categorias às submissões de publicações? Com o complemento de Submissões de Publicações, pode permitir que os seus visitantes escolham as categorias para cada submissão de publicação. Mas e se quisesse atribuir estas categorias e até adicionar etiquetas a estas publicações a partir do formulário, à medida que é submetido? Usando PHP, pode facilmente atribuir uma categoria ou etiqueta a estas publicações à medida que são submetidas.

Criação do formulário

Primeiro, terá de criar um formulário de Submissão de Publicação. Se precisar de alguma ajuda com isto, consulte esta documentação.

Ao criar o seu formulário, não se esqueça de remover o campo de formulário Categorias que é adicionado automaticamente como predefinição quando escolhe criar o modelo de formulário Submissão de Publicação de Blog. Como vamos definir isto manualmente com trechos de PHP, não queremos dar esta opção no nosso formulário.

remover o menu suspenso Categorias do modelo de formulário Submissão de Publicação

Atribuição automática de etiquetas e categorias

Para atribuir automaticamente etiquetas e categorias às submissões de publicações, precisaremos de adicionar um trecho ao nosso site.

Se precisar de alguma ajuda para adicionar trechos 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 ID da sua categoria, consulte este artigo dos nossos amigos da WPBeginner.

Como sabemos que este formulário recolherá especificamente submissões apenas de artesanato, estamos a direcionar o ID do formulário com 649. Em seguida, atribuiremos o ID da categoria 22 porque este é o número ID da nossa categoria Artesanato, bem como adicionaremos a etiqueta artesanato à publicação.

Se precisar de ajuda para encontrar o número ID do seu formulário, consulte este tutorial.

agora este trecho atribuirá etiquetas e categorias às submissões de publicações

Gostaria de adicionar o URL da publicação na mensagem de confirmação quando o formulário for submetido? Consulte o nosso tutorial sobre Como Incluir o URL da Publicação de Submissões na Mensagem de Confirmação.

Ação de Referência

wpforms_post_submissions_process

FAQ

P: Como removo a categoria Não Atribuída?

R: Se quiser remover automaticamente a categoria que o WordPress atribui automaticamente a todas as novas publicações, pode usar este trecho.

O ID da categoria Não Atribuída é tipicamente 1. Mas ainda assim deve confirmar isto encontrando o número 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 );