KI-Zusammenfassung
Möchten Sie die Optionen für dynamische Auswahlmöglichkeiten für Ihre Checkbox-, Multiple Choice- und Dropdown-Felder anpassen? Wenn Sie dynamische Auswahlmöglichkeiten verwenden, aber bestimmte Beiträge, Seiten oder Kategorien ausschließen möchten, dann ist dieses Tutorial genau das Richtige für Sie!
Die Felder Multiple Choices, Checkboxes und Dropdown können so konfiguriert werden, dass dynamisch Titel von Beiträgen oder Seiten als dynamische Auswahlmöglichkeiten angezeigt werden.
Standardmäßig werden alle veröffentlichten Elemente dieses spezifischen Beitragstyps oder dieser Taxonomie angezeigt, wenn dynamische Auswahlmöglichkeiten aktiviert ist.
Wenn beispielsweise dynamische Auswahlmöglichkeiten auf Beitragstyp gesetzt ist und die dynamische Beitragstypquelle auf Beiträge gesetzt ist, werden alle veröffentlichten Beiträge als Feldoptionen angezeigt.

In unserem Tutorial zeigen wir ein Dropdown mit dynamisch generierten Beitragstiteln von unserer Website.
Erstellen des Formulars
Zuerst erstellen wir ein Formular, das den Namen, die E-Mail-Adresse, die Möglichkeit für den Besucher, auszuwählen, welcher Beitrag ihm am besten gefallen hat, und dann einen Kommentarbereich erfasst.
Aus diesem Grund fügen wir unserem Formular die Formularfelder Name, E-Mail, Dropdown und Absatztext hinzu.
Sobald Sie das Dropdown-Feld hinzugefügt haben, klicken Sie auf Erweiterte Optionen und wählen Sie im Dropdown-Menü Dynamische Auswahlmöglichkeiten die Option Beitragstyp aus. Daraufhin wird ein weiteres Dropdown-Menü für Dynamische Beitragstypquelle angezeigt. Wenn Sie dieses zweite Dropdown-Menü sehen, wählen Sie Beiträge aus dem Dropdown-Menü aus und klicken Sie im Formular auf Speichern.

Hinzufügen des Snippets zum Einbeziehen von Beiträgen aus einer einzelnen Kategorie
Sie können diese Optionen sogar weiter anpassen, indem Sie Code-Snippets verwenden. Sie können nur Beiträge aus einer bestimmten Kategorie einschließen oder sogar Beiträge aus einer bestimmten Kategorie ausschließen.
In unserem Tutorial möchten wir beispielsweise nur Beiträge aus einer bestimmten Kategorie anzeigen. Daher wird unser Code-Snippet hinzugefügt, das unser Dropdown nur mit Beiträgen aus Kategorie 11 füllt.
Hilfe beim Hinzufügen von Code-Snippets zu Ihrer Website finden Sie in diesem Tutorial.
/**
* Limit posts or pages displayed by category.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dynamic_choices_categories( $args, $field, $form_id ) {
// For field #10 in form #851, only show entries in category #37
if ( '851' == $form_id && '10' == $field[ 'id' ] ) {
$args[ 'category' ] = '22';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dynamic_choices_categories', 10, 3 );
Denken Sie daran, Ihre Formular- und Feld-IDs in Ihren Code-Snippets zu ändern, damit sie mit Ihrer Formular- und Feld-ID-Nummer übereinstimmen. Wenn Sie Hilfe beim Auffinden Ihrer Formular- und Feld-IDs benötigen, lesen Sie bitte dieses Tutorial.
Begrenzung mehrerer Formulare für mehrere Kategorie-IDs
Wussten Sie, dass Sie dieses Code-Snippet auch für verschiedene Formulare und Felder verwenden können?
Der folgende Code beschränkt dynamische Optionen innerhalb von zwei verschiedenen Formularen:
- Feld-ID
1von Formular-ID363, um nur Beiträge mit der Kategorie-ID11anzuzeigen - Feld-ID
20von Formular-ID225, um nur Beiträge aus Kategorie-ID5anzuzeigen
/**
* Limit posts or pages displayed by category.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dynamic_choices_categories( $args, $field, $form_id ) {
// For field #1 in form #363, only show entries in category #11
if ( '363' == $form_id && '1' == $field[ 'id' ] ) {
$args[ 'category' ] = '11';
// For field #20 in form #225, only show entries in category #5
} elseif ( '225' == $form_id && '20' == $field['id'] ) {
$args[ 'category' ] = '5';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dynamic_choices_categories', 10, 3 );
Begrenzung nach Taxonomie
Eine Taxonomie ist ein Begriff, der in WordPress verwendet wird, um Dinge wie Kategorien und Schlagwörter zu definieren.
Wenn die Dynamischen Auswahlmöglichkeiten auf Taxonomie gesetzt sind und die Dynamische Taxonomiequelle auf Kategorien gesetzt ist, werden alle Kategorien für die Feldoptionen verwendet.

Sie können jedoch bestimmte Kategorien mit dem folgenden Snippet ausschließen.
/**
* Exclude categories from dynamic choices.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_dynamic_choices_exclude( $args, $field, $form_id ) {
if ( is_array( $form_id ) ) {
$form_id = $form_id[ 'id' ];
}
// Only on form #212 and field #16
if ( $form_id == 212 && $field[ 'id' ] == 16 ) {
// Category IDs to exclude
$args[ 'exclude' ] = '4,5,6,11';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_taxonomy_args', 'wpf_dev_dynamic_choices_exclude', 10, 3 );
Dieses Snippet schließt Kategorien mit den IDs 4, 5, 6 und 11 von den dynamischen Auswahlmöglichkeiten aus. Wenn Sie exclude im obigen Snippet durch include ersetzen, werden nur Kategorien mit den von Ihnen hinzugefügten IDs angezeigt.

Anzeige nur zukünftiger Beiträge
/*
* Only display future posts in the dynamic choices
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_only_future_posts( $args, $field, $form_id ) {
// Only run this snippet on form ID 2575 & only on field ID 19
if ( '2575' == $form_id && '19' == $field[ 'id' ] ) {
// If the Dynamic Choices is set to Post Type
// Look for and only display the posts that have been scheduled with a future date
$args[ 'post_status' ] = [ 'publish', 'future' ];
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dev_only_future_posts', 10, 3 );
Anzeige nur Beiträge des aktuell angemeldeten Benutzers
/*
* Set the number of days to delete partial entries when using the Save and Resume addon
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_only_loggedin_user_posts( $args, $field, $form_id ) {
// Only run this snippet on form ID 2519 & only on field ID 3
if ( '2519' == $form_id && '3' == $field[ 'id' ] ) {
// If the Dynamic Choices is set to Post Type
// Look for and only display the posts that have been scheduled with a future date
$args[ 'author' ] = get_current_user_id();
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dev_only_loggedin_user_posts', 10, 3 );
Anzeige von Beiträgen eines bestimmten Autoren-IDs
/**
* Only show posts from a particular author ID
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dynamic_choices_author( $args, $field, $form_id ) {
// Only run on form ID 526
if ( '526' == $form_id ) {
// The author ID is equal to 9
$args[ 'author' ] = '9';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dynamic_choices_author', 10, 3 );
Anzeige nur von Unterkategorien
/**
* Display only child categories
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_dynamic_choices_include( $args, $field, $form_id ) {
if ( is_array( $form_id ) ) {
$form_id = $form_id[ 'id' ];
}
// Only on form #122 and field #11
if ( $form_id == 122 && $field[ 'id' ] == 11 ) {
// Category IDs to include - 87 is parent; 88 and 89 are child categories of this parent
$args[ 'include' ] = '87,88,89';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_taxonomy_args', 'wpf_dev_dynamic_choices_include', 10, 3 );
FAQs
F: Wie kann ich dies für eine WooCommerce-Kategorie anpassen?
A: Für WooCommerce-Taxonomien stellen Sie auf der Registerkarte „Erweitert“ Ihres Kontrollkästchen-, Dropdown- oder Mehrfachauswahlfelds die Dynamischen Auswahlmöglichkeiten auf Produkt und für die Dynamische Taxonomiequelle wählen Sie Produktkategorien aus.
Wenn Sie dann nur bestimmte Kategorien einschließen möchten, finden Sie die ID auf die gleiche Weise wie oben. Klicken Sie im WordPress-Adminbereich unter Produkte im linken WordPress-Adminmenü auf Kategorien. Klicken Sie auf jede Produktkategorie, deren ID Sie benötigen. Die URL sieht dann etwa so aus:?taxonomy=product_cat&tag_ID=90&post_type=product&wp_http_referer=%2Fwp-admin%2Fedit-tags.php%3Ftaxonomy%3Dproduct_cat%26post_type%3Dproduct
In diesem Beispiel wäre die ID-Nummer 90
Daher wäre Ihr Snippet wie folgt.
/**
* Include certain Woocommerce categories from dynamic choices.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_dynamic_choices_exclude( $args, $field, $form_id ) {
if ( is_array( $form_id ) ) {
$form_id = $form_id[ 'id' ];
}
// Only on form #2620 and field #11
if ( $form_id == 2620 && $field[ 'id' ] == 11 ) {
// Product Category IDs to include
$args[ 'include' ] = '90,95,98';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_taxonomy_args', 'wpf_dev_dynamic_choices_exclude', 10, 3 );
F: Wie kann ich nur bestimmte Produkte aus einer WooCommerce-Kategorie anzeigen?
A: Natürlich. Sie würden Ihre Dynamischen Auswahlmöglichkeiten auf Produkt und für die Dynamische Taxonomiequelle auf Produktkategorien einstellen.
Und anstatt der Produktkategorie-ID würden Sie den Namen verwenden.
/**
* Include products from a specific category from dynamic choices.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_dev_dynamic_choices_exclude( $args, $field, $form_id ) {
if ( is_array( $form_id ) ) {
$form_id = $form_id[ 'id' ];
}
// Only on form #2620 and field #11
if ( $form_id == 2620 && $field[ 'id' ] == 11 ) {
// Category IDs to exclude
$args[ 'product_cat' ] = 'Decor';
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_dev_dynamic_choices_exclude', 10, 3 );
Dekor ist der Name unserer Produktkategorie. Denken Sie daran, dies zu ändern, um Ihren eigenen Bedürfnissen zu entsprechen.
F: Wie kann ich Beiträge aus einer benutzerdefinierten Taxonomie in einem WPForms-Dropdown-Feld anzeigen?
A: Um Beiträge aus einer benutzerdefinierten Taxonomie in einem WPForms-Dropdown-Feld anzuzeigen, müssen Sie die Argumente für dynamische Auswahlmöglichkeiten ändern. Derzeit decken die bereitgestellten Beispiele in unserer Dokumentation Kategorien ab. Hier ist ein Beispiel, das zeigt, wie der Code angepasst wird, um Beiträge aus einer bestimmten Taxonomie abzurufen.
/**
* Customize WPForms dynamic choices to show posts from a specific taxonomy.
*
* @link https://wpforms.com/developers/how-to-exclude-posts-pages-or-categories-from-dynamic-choices/
*/
function wpf_custom_dynamic_choices( $args, $field, $form_id ) {
// For field #4 in form #25107012, only show entries in taxonomy term ID 8
if ( '25107012' == $form_id && '4' == $field['id'] ) {
$args[ 'tax_query' ] = array(
array(
'taxonomy' => 'samples', // Replace with your custom taxonomy
'field' => 'term_id',
'terms' => array( 8 ), // Replace with your term ID
),
);
}
return $args;
}
add_filter( 'wpforms_dynamic_choice_post_type_args', 'wpf_custom_dynamic_choices', 10, 3 );
Das Array tax_query wird verwendet, um die benutzerdefinierte Taxonomie (Beispiele in diesem Beispiel) und die Term-ID (8 in diesem Beispiel) anzugeben. Sie sollten „samples“ und 8 durch Ihre eigene Taxonomie und Term-ID ersetzen, wie erforderlich. Weitere Informationen zu Tax-Queries finden Sie in der WordPress-Dokumentation.
Und das ist alles! Sie haben nun die verschiedenen Möglichkeiten kennengelernt, dynamische Auswahlmöglichkeiten in WPForms anzupassen.
Möchten Sie wissen, wie Sie Feldwerte für dieselben Formularfelder hinzufügen? Sehen Sie sich unseren Artikel an, wie Sie Feldwerte für Dropdown-, Kontrollkästchen- und Mehrfachauswahlfelder hinzufügen.