ご注意!

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

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

閉じる

説明

wpforms_frontend_output_before アクションは、フォームが存在し、フィールドが含まれている場合にのみ、サイトのフロントエンドにフォームが表示される前に発生します。

パラメーター

$form_data
(配列)  後で使用するために処理および準備されたフォーム設定/データ。
$form
(WP_Post) フォームの投稿タイプオブジェクト。

ソース

wpforms/src/Frontend/Frontend.php

詳細情報

wpforms_frontend_output_before は有効で空でないフォームにのみ発生しますが、出力レンダリングプロセスの早い段階で実行されます。

フォームの確認メッセージを表示したり、wpforms_frontend_output_after フィルターをトリガーしたりする場合など、アクションが発生してもフォームが表示されない場合があります。

検討すべき代替アクションは wpforms_frontend_output_after です。これは同様に機能しますが、フォームが表示されたにのみ発生します。

以下のコードスニペットの例では、まずフォームIDが5と等しいかどうかを確認します。等しい場合は、デジタルカタログをダウンロードするためのリンクをエコーします。

コードを実行したい特定のフォームIDと一致するように、フォームIDを5から変更することを忘れないでください。このチェックを削除すると、すべてのフォームに適用されます。

/**
 * Output something before your form(s).
 * 
 * @link  https://wpforms.com/developers/wpforms_frontend_output_before/
 *
 * @param array  $form_data Form data and settings.
 * @param object $form      Form post type object.
 */

function wpf_dev_frontend_output_before( $form_data, $form ) {
    
    // Optional, you can limit to specific forms. Below, we restrict output to
    // form #5.
    if ( absint( $form_data[ 'id' ] ) !== 5 ) {
        return;
    } 

    // Run code or see the example echo statement below.
    _e( '<p>If you would like to download our digital catalog, <a href="http://yourlinkurl.com/" target="_blank">click here</a>.</p>', 'plugin-domain' );

}

add_action( 'wpforms_frontend_output_before', 'wpf_dev_frontend_output_before', 10, 2 );

参考記事

フォームの前に動画を追加する方法