¡Atención!

Este artículo contiene código PHP y está destinado a desarrolladores. Ofrecemos este código como cortesía, pero no proporcionamos soporte para personalizaciones de código o desarrollo de terceros.

Para obtener ayuda adicional, consulta el tutorial de WPBeginner sobre cómo añadir código personalizado.

Descartar

Descripción

El filtro wpforms_dynamic_choice_post_type_args se utiliza para poblar las Opciones dinámicas para tipos de publicación y taxonomías.

Parámetros

$args
(array) (Requerido) Argumentos de la entrada del formulario, como ID de categoría, ID de etiqueta, ID de autor, etc.
$campo
(array) Valores/propiedades del campo de entrada saneados.
$id_formulario
(int) ID del formulario.

Origen

wpforms/includes/functions/form-fields.php

Más Información

El filtro wpforms_dynamic_choice_post_type_args proporciona una lista de argumentos admitidos de la publicación, como la categoría. De manera similar, también puede usar wpforms_dynamic_choice_taxonomy_args para obtener argumentos de la taxonomía de Etiquetas.

En este ejemplo que se muestra a continuación, la función se procesará en el ID del formulario 789 para el ID del campo 10 y solo incluirá publicaciones de la categoría 11.

Ejemplos

/**
 * 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 );

Artículos de Referencia

Cómo excluir entradas, páginas o categorías de las opciones dinámicas

Preguntas frecuentes

¿P: ¿Cómo puedo mostrar solo las subcategorías?

R: Para mostrar subcategorías en tu formulario, necesitas incluir tanto el ID de la categoría padre como los IDs de las subcategorías. Esto se debe a que la funcionalidad actual requiere que se especifique la categoría padre para obtener y mostrar correctamente sus subcategorías.

/**
 * 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 fragmento asegura que tanto la categoría padre (ID 87) como sus subcategorías (IDs 88 y 89) se incluyan en las opciones dinámicas.