AI要約
説明
wpforms_dynamic_choice_post_type_args フィルターは、投稿タイプとタクソノミーのダイナミックチョイスを生成するために使用されます。
パラメーター
- $args
- (配列) (必須) カテゴリID、タグID、作成者IDなどの投稿投稿の引数。
- $field
- (配列) サニタイズされたエントリーフィールドの値/プロパティ。
- $form_id
- (int) フォームID。
ソース
wpforms/includes/functions/form-fields.php
詳細情報
wpforms_dynamic_choice_post_type_args フィルターは、カテゴリなどの投稿からサポートされている引数のリストを提供します。同様に、タグのタクソノミーから引数を取得するために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 );
このスニペットは、親カテゴリ(ID 87)とその子カテゴリ(ID 88および89)の両方がダイナミックチョイスに含まれることを保証します。