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

Descrição

O filtro wpforms_dynamic_choice_post_type_args é usado para preencher as Escolhas Dinâmicas para tipos de post e taxonomias.

Parâmetros

$args
(array) (Obrigatório) Argumentos da submissão de postagem, como ID da Categoria, ID da Etiqueta, ID do Autor, etc.
$campo
(array) Valores/propriedades do campo de entrada higienizados.
$id_formulario
(int) ID do formulário.

Origem

wpforms/includes/functions/form-fields.php

Mais Informações

O filtro wpforms_dynamic_choice_post_type_args fornece uma lista de argumentos suportados do post, como Categoria. Da mesma forma, também pode usar o wpforms_dynamic_choice_taxonomy_args para obter argumentos da taxonomia de Etiquetas.

Neste exemplo mostrado abaixo, a função será processada no ID do formulário 789 para o ID do campo 10 e incluirá apenas posts da categoria 11.

Exemplos

/**
 * Limit posts or pages displayed by category.
 *
 * @link https://wpforms.com/developers/wpforms_dynamic_choice_post_type_args
 *
 * @param array $args       Arguments from post submission.     
 * @param array $field      Sanitized field data. 
 * @param int   $form_id    Form ID
 *
 * @return $args
 */

function wpf_dev_dynamic_choices_categories( $args, $field, $form_id ) {
    
     // Only on form #789 and field #10
     if ( $form_data[ 'id' ] == 789 && $field[ 'id' ] == 10 ) {

         $args[ 'category' ] = '11';		 
    
     }
	
     return $args;
}

add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dev_dynamic_choices_categories', 10, 3 );

Artigos de Referência

Como Excluir Posts, Páginas ou Categorias de Escolhas Dinâmicas

FAQ

P: Como posso mostrar apenas as categorias filhas?

R: Para exibir categorias filhas no seu formulário, precisa de incluir tanto o ID da categoria pai como os IDs das categorias filhas. Isto acontece porque a funcionalidade atual exige que a categoria pai seja especificada para buscar e exibir corretamente as suas categorias filhas.

/**
 * Limit posts or pages displayed by category.
 *
 * @link https://wpforms.com/developers/wpforms_dynamic_choice_post_type_args
 *
 * @param array $args   Arguments for post submission.     
 * @param array $field  Sanitized field data. 
 * @param int   $form_id Form ID
 *
 * @return array Updated arguments
 */

function wpf_dev_dynamic_choices_include( $args, $field, $form_id ) {
    // Ensure form ID is correctly handled
    if ( is_array( $form_id ) ) {
        $form_id = $form_id[ 'id' ];
    }

    // Apply only to specific form and field IDs
    if ( $form_id == 122 && $field[ 'id' ] == 11 ) {
        // Include category IDs - 87 is the parent; 88 and 89 are child categories
        $args['include'] = '87,88,89';
    }

    return $args;
}
add_filter( 'wpforms_dynamic_choice_taxonomy_args', 'wpf_dev_dynamic_choices_include', 10, 3 );

Este trecho garante que tanto a categoria pai (ID 87) como as suas categorias filhas (IDs 88 e 89) são incluídas nas escolhas dinâmicas.