Achtung!

Dieser Artikel enthält PHP-Code und richtet sich an Entwickler. Wir stellen diesen Code als Service zur Verfügung, bieten jedoch keine Unterstützung für Codeanpassungen oder die Entwicklung durch Dritte.

Für zusätzliche Hilfe siehe das Tutorial von WPBeginner zum Hinzufügen von benutzerdefiniertem Code.

Schließen

Beschreibung

Der wpforms_dynamic_choice_post_type_args Filter wird verwendet, um die Dynamischen Auswahlmöglichkeiten für Beitragstypen und Taxonomien zu füllen.

Parameter

$args
(array) (Erforderlich) Argumente aus der Beitragsübergabe wie Kategorie-ID, Tag-ID, Autor-ID usw.
$field
(array) Bereinigte Eingabefeldwerte/-eigenschaften.
$form_id
(int) Formular-ID.

Quelle

wpforms/includes/functions/form-fields.php

Weitere Informationen

Der wpforms_dynamic_choice_post_type_args Filter stellt eine Liste unterstützter Argumente aus dem Beitrag wie Kategorie bereit. Ebenso können Sie auch wpforms_dynamic_choice_taxonomy_args verwenden, um Argumente aus der Taxonomie von Tags abzurufen.

In diesem unten gezeigten Beispiel wird die Funktion für die Formular-ID 789 für das Feld-ID 10 verarbeitet und nur Beiträge aus der Kategorie 11 eingeschlossen.

Beispiele

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

Referenzartikel

Wie man Beiträge, Seiten oder Kategorien von dynamischen Auswahlmöglichkeiten ausschließt

FAQ

F: Wie kann ich nur die Unterkategorien anzeigen?

A: Um Unterkategorien in Ihrem Formular anzuzeigen, müssen Sie sowohl die ID der übergeordneten Kategorie als auch die IDs der Unterkategorien angeben. Dies liegt daran, dass die aktuelle Funktionalität erfordert, dass die übergeordnete Kategorie angegeben wird, um ihre Unterkategorien korrekt abzurufen und anzuzeigen.

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

Dieser Ausschnitt stellt sicher, dass sowohl die übergeordnete Kategorie (ID 87) als auch ihre Unterkategorien (IDs 88 und 89) in den dynamischen Auswahlmöglichkeiten enthalten sind.