ご注意!

この記事には PHP コードが含まれており、開発者を対象としています。このコードは便宜上提供していますが、コードのカスタマイズやサードパーティの開発についてはサポートを提供していません。

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

閉じる

説明

wpforms_post_submissions_post_argsフィルターは、WPFormsのPost Submissionsアドオンを使用する際に、タイトル、投稿タイプなどの投稿のすべての引数を設定するために使用されます。

パラメーター

$post_args
(配列) (必須) カテゴリID、タグID、作成者IDなどの投稿投稿の引数。
$form_data
配列 フォーム設定/データ。
$fields
配列 サニタイズされたエントリーフィールドの値/プロパティ。

ソース

wpforms-post-submissions/class-post-submissions.php

詳細情報

wpforms_post_submissions_post_argsは、投稿タイトル、カテゴリなどを投稿内に設定するために、投稿が処理されるとすぐにトリガーされます。

例のコードでは、まずフォームIDをチェックして、ターゲットのフォームと一致するかどうかを確認します。次に、特定のフィールド(フィールドID別)をチェックして、それが空かどうかを確認します。

フォームIDは1378からご自身のフォームIDに一致するように変更し、'10'をご自身のフィールドIDに一致するように変更することを忘れないでください。

フォームIDとフィールドIDの見つけ方についてサポートが必要な場合は、こちらのチュートリアルをご覧ください

ドロップダウンがFAQと一致するかどうかを確認し、一致する場合は、投稿タイプをpostからmy_faqに変更します。

/**
 * Action that fires during form submission.
 *
 * @link   https://wpforms.com/developers/wpforms_post_submissions_post_args/
 *
 * @param  array  $post_args Sanitized entry field. values/properties.
 * @param  array  $form_data Form data and settings.
 * @param  array  $fields    Sanitized entry field values/properties.
 *
 * @return array
 */

function wpf_dev_post_submissions_post_args( $post_args, $form_data, $fields ) {

    // Only run this snippet on the form ID 1378
    if ( absint( $form_data[ 'id' ] ) !== 1378 ) {
        return $fields;
    }
	
    // If the field ID is 10 and the value of that field is equal to FAQ process the snippet
    if ( ! empty( $fields[ '10' ] ) && $fields[ '10' ][ 'value' ] === 'FAQ' ) {
        $post_args[ 'post_type' ] = 'my_faq';
    }

    return $post_args;
}
  
add_filter( 'wpforms_post_submissions_post_args', 'wpf_dev_post_submissions_post_args', 10, 3 );