サポート » プラグイン » zipaddr-jpとContact Form 7のSyntaxError

  • 解決済 himuhimu77

    (@himuhimu77)


    プラグインContact Form 7 で作ったフォームに、プラグインzipaddr-jpを使用して郵便番号での住所自動入力を実装しています。 機能としては、正常に動いているのですが、Google Chromeにてコンソールを確認すると、Uncaught SyntaxError: Identifier 'D' has already been declared (at zipaddrx.js?v=1.32:1:1)というエラーが出ています。 このエラー文について検索してはみたのですが同様の例が見つからず、エラーが出ているのに動いている状態にも若干モヤモヤするので、質問させていただきました。
    現在ホームページには二つContact Form 7で作成したフォームを設置しており、
    一つ目はidをそれぞれ zip、pref、city と設定したものを、固定ページにてショートコードで貼り付け、メニューの「お問い合わせ」で表示。こちらのページにはエラーは出ていません。
    二つ目はidをそれぞれ zip2、pref2、city2 と設定したものを、テンプレートファイルにてdo_shortcode関数で埋め込んでいます。エラーが出ているのはこちらの記事ページです。

    記事ページにそれぞれお問い合わせを設置したいので、このような設計にしているのですが、この設計が原因でしょうか?zipaddr-jp側では、無条件挿入の欄に/doar;/infoを設定しています。(これを設定しないと動作しませんでした)何か原因がわかる方いらっしゃれば教えていただけると嬉しいです。 

    WordPress 5.9.3
    Contact Form 7 バージョン: 5.5.6
    zipaddr-jp バージョン 1.32 を使用しております。

    ヘルプの必要なページ: [リンクを見るにはログイン]

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • himuhimu77さん、こんにちは。

    多分ですが、278行目と370行目で同じ zipaddrx.js を2回読み込んでいるので、変数が2回宣言されてしまっているのだと思います。

    ご参考になれば。

    トピック投稿者 himuhimu77

    (@himuhimu77)

    @shokun0803 さん、ご返信が遅くなってしまい申し訳ございません。
    自分でもソースを見てみたところ、確かにzipaddrx.jsが二回読み込まれているのが確認できました。
    しかしこちらでは特にソースを記述などはしておらず、おそらくプラグインによって自動で二回呼び込まれてしまっているということが分かりました。そこで更に調べましたところ、こちらの記事ページのテンプレートファイルで、お問い合わせフォームの直前にapply_filters関数を使用して以下のようなコードで

    <?php
      $page_id = 999; 
      $alternative_post = get_post( $page_id );
      echo apply_filters('the_content', $alternative_post->post_content);
    ?>

    別の固定ページの内容を読み込んでいたのですが、そちらの記述を変更して、get_postを使用して以下のように

    <?php
      $page_id = get_page_by_path('page-bottom'); 
      $page = get_post( $page_id );
      echo $page -> post_content;  
    ?>

    読み込むようにしたところ、正常にzipaddrx.jsは一度だけ読み込まれるようになり、エラーも無事消えました。
    いまいちこの記述による違いがわかっていないので、また勉強しなければとは思いますが、解決への取っ掛かりになるヒントをくださり誠にありがとうございました。

    • この返信は2年、 2ヶ月前にhimuhimu77が編集しました。
    • この返信は2年、 2ヶ月前にhimuhimu77が編集しました。
    • この返信は2年、 2ヶ月前にhimuhimu77が編集しました。
2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「zipaddr-jpとContact Form 7のSyntaxError」には新たに返信することはできません。