Contact form 7-フォーム内で他のショートコードを使用する方法は?[閉まっている]


15

お問い合わせフォーム7の組み込みショートコードに含まれないショートコードは機能しないことに気付きました。

例:コンタクトフォーム7のフォーム要素間でアコーディオンショートコードを使用しようとしていますが、コードは機能しません。

Contact Form 7コアファイルを編集せずにこれを解決する方法は?


これができるかどうかわからない。ショートコードはページまたは投稿に含まれている必要があります。フォーム要素間にショートコードを挿入できるとは思わない。どこに置きますか?...お問い合わせフォーム7の設定で?あなたはそこにそれをすることはできません(私が聞いたことがない連絡フォーム7の指示に従わない限り)。
byronyasgur

回答:


21

あなたがしたいことをする2つの方法があります。最初の方法は、このコードをContact Form 7プラグインのfunctions.phpに追加することです。

add_filter( 'wpcf7_form_elements', 'mycustom_wpcf7_form_elements' );

function mycustom_wpcf7_form_elements( $form ) {
$form = do_shortcode( $form );

return $form;
}

これにより、ショートコードをCF7に直接ドロップできます。次に、次のように、連絡先フォームにHTMLを使用して手動でアコーディオンを追加します。

<!-- begin class .wp-accordion -->
<div class="wp-accordion wpui-light">

    <!-- First tab's panel -->
    <h3 class="wp-tab-title">Tab 1</h3>
    <!-- First tab's contents -->
    <div class="wp-tab-content">
          All the contents of first tab goes here....
    </div><!-- end first tab -->

      <!-- Like so, Second panel -->
      <h3 class="wp-tab-title">Tab 2</h3>
      <div class="wp-tab-content">
            Contents of the second tab
       </div>

</div><!-- end class wp-accordion -->

コアプラグインファイルの変更はないため、2番目の方法が望ましいと思います。これがお役に立てば幸いです!


4
実際-テーマのfunctions.phpにフィルターコードを追加できます。ショートコードはCF7フォーム内で適切に機能します。特定の1つ(アコーディオン用)が機能するかどうかは確認できません-CF7ショートコードを含まないショートコードでしかテストしていませんが、基本的にはすべて問題のショートコードの処理方法に依存します。
ニコライワノフニコロフ

10
確かに、add_filter( 'wpcf7_form_elements', 'do_shortcode' );私の子テーマのfunctions.phpからのトリックは簡単です。
エヴァンマットソン

1
サイトの複数の場所で同じコンテンツを使用する場合は、場所全体に同じHTMLをカットアンドペーストするよりも、ショートコード(必要に応じてローカライズ可能)を作成することをお勧めします。
クレイグ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.