9

テンプレートはアクティブなテーマとはまったく異なるレイアウトであるため、WordPress テーマ内にカスタム テンプレートを作成しています。テンプレートには独自のヘッダーとフッターがあり、適切に宣言された両方の内部にありwp_head();ますwp_footer();

テンプレート コード内で、do_shortcode を使用して重力フォームを表示しようとしていますが、フォームが表示されません。領域を調べると、フォーム コードが表示されますが、 divにstyle="display:none"追加されています。.gform_wrapper

もう 1 つ注意点として、重力フォームはサイトの残りの部分 (アクティブなテーマを使用するすべてのページ/投稿) で完全に機能していますが、カスタム テンプレートにのみ問題があります。

どんな提案でも大歓迎です。

ありがとう

4

15 に答える 15

26

これは古い質問ですが、この問題を検索したときにまだ最初に出てきたので、他の人も検索している場合に備えて私の解決策を追加しています. functions.php に次のコード行を 1 つ以上含めることにより、テーマがスクリプトをフッターに移動する場合 (パフォーマンス上の理由から頻繁に推奨されます):

remove_action('wp_head', 'wp_print_scripts'); 
remove_action('wp_head', 'wp_print_head_scripts', 9);
add_action('wp_footer', 'wp_print_scripts', 5);
add_action('wp_footer', 'wp_print_head_scripts', 5);

Gravity Forms スクリプトもフッターに移動して、jQuery の後に呼び出されるようにする必要があります。これを行うには、次のコードをテーマの functions.php ファイルに追加します。

add_filter('gform_init_scripts_footer', 'init_scripts');
function init_scripts() {
    return true;
}
于 2014-07-24T18:52:30.500 に答える
5

これは、フォームで条件付きロジックが使用されているためです。条件付きロジックが存在する場合は常に、フォーム全体が表示に設定されます: none; 次に、表示する必要があるフィールドのみを表示するためにjavascriptが使用されます。

ただし、これには、Gravity Forms が、WordPress 組み込みのエンキュー関数を使用して必要な Javascript を出力できる必要があります... フッターに Javascript を出力します。

あなたのテーマには、テーマの footer.php ファイルに次の関数呼び出しが含まれていない可能性があります。

<? php wp_footer(); ?>

すべてのテーマに必要なこの関数呼び出し (ただし、多くの人が含めることを忘れています) により、プラグインはテーマのフッターにコードを動的に出力できます。存在しない場合、テーマは必要なコードを出力できません。

これが、フォームが正しく表示されない理由である可能性が最も高いです。

回答: http://www.gravityhelp.com/question/why-is-there-a-style-attribute-of-displaynone-being-added-my-form-isnt-showing-up/

于 2013-09-04T19:22:26.623 に答える
0

私は今この問題に遭遇しました。

2 つの問題: この古いテーマは jQuery 1.5.1 を使用しており、バンドルされているすべてのプラグインは古い jQuery 用に作成されていました。古いバージョンの jQuery が原因で、条件付きロジック フィールドの名前を変更したため、Gravity Forms の条件付きロジックが機能していませんでした。

不適切な条件ロジックのドロップダウンのいくつかを削除/修正し、サイトの jQuery バージョンをアップグレードした後、物事は再び機能し始めました。

于 2017-05-30T01:47:53.887 に答える
0

一時的な修正として、これを<theme_dir>/footer.phpの直前に追加しました</body></html>:

<script>
jQuery('.gform_wrapper').show();
</script>

.gform_wrapperこれにより、クラスですべての div を表示するように jQuery に指示されます。

wp_footer();私はすでに動き回り、ここから他のすべての提案を試みました。そして他のサイトから。何も機能しませんでした。また、キャッシュの無効化、キャッシュのパージ、プラグインの削除なども試しました。JS エラーはありません。フォームが表示されていません。

私が気づいたことの 1 つは、2 つの条件が満たされた場合にのみ問題が発生することです。

  1. ユーザーがログインしていません。
  2. フォームは条件付きロジックを使用します。

2 つのうちのいずれかが存在しない場合、フォームは正常に読み込まれます。

これが起こっている理由がわかったら、ここにさらに情報を追加します。

編集:

主な問題は、DOMContentLoaded解雇されていないことです。すべての http リクエストが終了しない場合に発生します (保留中の css、js、画像など)。次のコード ( https://stackoverflow.com/a/49724894/1582649から借用) は、イベントを強制し、フォームを表示します。

window.document.dispatchEvent(new Event("DOMContentLoaded", {
  bubbles: true,
  cancelable: true
}));

保留中のリクエストがコンソールに表示されていないため、なぜこれが起こっているのかはまだわかりません。すべてが適切にロードされているようです。サイト全体を別のサーバーにコピーしようとしましたが、そこで動作します。これは、ホストプロバイダーに関連するものだと思います。ある種のキャッシュかもしれません。

とりあえず、そのコードは の最後に残しておきます<theme>/footer.php

于 2021-05-28T15:04:33.700 に答える
0

CSS と JavaScript コードを連結して圧縮する Web サイトを最適化する Autoptimize というプラグインを無効にするだけで問題を解決できました。

一度見つけたら一目瞭然。

于 2015-09-18T18:19:06.210 に答える
-1

divstyle="display:none"から削除しようとしましたか?.gform_wrapperまたはそれをに変更する style="display:block"

于 2013-06-23T11:01:36.300 に答える
-2

.gform_wrapper クラス自体に「display:none」が設定されていますか? 次に、Gravity Forms の css ファイルで変更します。

ただし、ラッパーには、display:none を設定できる ID または別のクラスがある場合があります。

最後になりましたが、ラッパーの jQuery アニメーションが壊れている可能性があります。

于 2013-06-23T11:04:27.870 に答える