【WordPress】PHPからjsにJSONで値を渡したいのですが、エラーが出ます。

前提

ワードプレスを使ってイベントページを作成しており、
そのsingleページにContactForm7のフォームを挿入しています。
フォームの中にデイトピッカーを設けており、最小日・最大日を設定したいと考えています。

各記事ごとに選択できる日付の範囲を変えたいので、
カスタムフィールドで最小・最大の日付を選択し、これを反映できるようにしたいです。
js内にあるデイトピッカーの中で、PHPで取得した日付を出力することが希望です。

発生している問題・エラーメッセージ

■single.php

PHP

//デイトピッカーに日付選択範囲を追加する <?php $jsonString = json_encode($dataArray, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); $date_start = [date_format(date_create(get_field('イベント開始日')), 'Y,m,d')]; $date_end = [date_format(date_create(get_field('イベント終了日')), 'Y,m,d')]; if($date_end){ $ads_s = json_encode($date_start); $ads_e = json_encode($date_end); }else{ $ads_s = json_encode($date_start); $ads_e = json_encode($date_start); } ?>

■script.js

js

$(function () { let $ads_s = JSON.parse('<?php echo $ads_s; ?>'); let $ads_e = JSON.parse('<?php echo $ads_e; ?>'); console.log($ads_s); console.log($ads_e); $("#custom-datepicker").datepicker({ language: 'ja', dateFormat: 'yy年mm月dd日(D)', minDate: new Date(JSON.parse("<?php echo $ads_s[0]; ?>")), maxDate: new Date(JSON.parse("<?php echo $ads_e[0]; ?>")) });});

single.php内では、「echo $ads_s」 で、["2022, 08, 01"]のような形で配列が出力できていることを確認しています。
しかし、jsファイルにJSONを用いたphpの配列が出力されません。

console.logで確認したところ、下記のようなエラーが出ております。

Uncaught SyntaxError: Unexpected token '<', "<?php echo"... is not valid JSON

検証モードでjsを確認したところ、
理想は下記のようになっていてほしいのですが、

js

let $ads_s = ["2022, 08, 01"];

このようになってしまいます。

js

let $ads_s = JSON.parse('<?php echo $ads_s; ?>');

どのようにすれば、エラーが解消できるかお力添えいただきたいです。

コメントを投稿

0 コメント