説明
について wpforms_dynamic_choice_post_type_args
フィルタを使用して ダイナミックな選択 投稿タイプやタクソノミーの
パラメータ
- 引数
- (配列) (必須)カテゴリーID、タグID、著者IDなどの投稿の引数。
- フィールド
- (配列)サニタイズされたエントリーフィールドの値/プロパティ。
- フォームID
- (int) フォームID。
ソース
wpforms/includes/functions/form-fields.php
詳細情報
について wpforms_dynamic_choice_post_type_args
フィルタは、Category などの投稿でサポートされている引数のリストを提供します。 同様に wpforms_dynamic_choice_taxonomy_args
のタクソノミーから引数を引っ張ってくる。 タグ.
以下の例では、関数はフォーム ID に対して処理を行います。 789
フィールドID 10
というカテゴリーからの投稿のみが含まれます。 11
.
例
/** * 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 );
参考記事
よくあるご質問
Q: 子カテゴリーだけを表示するにはどうすればいいですか?
A:フォームに子カテゴリーを表示するには、親カテゴリーIDと子カテゴリーIDの両方を含める必要があります。現在の機能では、子カテゴリーを正しく取得して表示するために、親カテゴリーが指定されている必要があるからです。
/** * 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 );
このスニペットは、親カテゴリー(ID87)とその子カテゴリー(ID88と89)の両方が動的選択肢に含まれることを保証します。