気をつけよう!

この記事はPHPコードを含み、開発者向けです。私たちはこのコードを好意で提供していますが、コードのカスタマイズやサードパーティの開発に関するサポートは提供していません。

さらに詳しいガイダンスについては、WPBeginnerのカスタムコードの追加に関するチュートリアルを参照してください。

解散

説明

について 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)の両方が動的選択肢に含まれることを保証します。