ユーザーがいくつかのカスタム投稿で検索を実行できるようにするワードプレス プラグイン ページに取り組んでいます。検索フォームはスクリプト ajax に基づいており、検索ボタンをクリックすると、スクリプト jquery が呼び出しをインターセプトし、wordpress の ajax 呼び出しを作成します。この呼び出しは、問題の wordpress プラグインのクラス内でメソッドを起動し、検索フォームから $ _POST を介して渡されたデータを処理します。次に、結果が表示され、これらのいずれかをクリックすると、単一のページに送信されます。私がしようとしているスクリプトは、ユーザーがブラウザの戻るボタンを使用して単一のページから検索結果に戻ることを許可する必要があります。問題は、このスクリプトが PC のローカルでは正常に動作することですが、オンラインで読み込まれると、このプラグインが動作しなくなります。(長い紹介で申し訳ありませんが、問題を明確に定義するのに役立ちました)。
スクリプトは次のように機能します。
- 検索フォームに入力し、検索ボタンをクリックします
- $_POST にはフォーム データが入力され、$_SESSION には $_SESSION = $_POST が入力されます。
- 結果を開いて単一のページに移動し、ブラウザに戻ります
コントロール $_POST = $_SESSION を使用してページ設定を強制的に更新します (乗り心地ははるかに複雑ですが、これが基になっている原則です)。
ajaxResult php 関数 この関数は、検索ボタンのクリック時に呼び出されます
// Check if user came from single page or from search page if(!$_POST && $_SESSION['back_to_hardsoft_results']) { if( $_SESSION['back_to_page'] ) { $_POST = $_SESSION['back_to_hardsoft_results']; $_SESSION['back_to_page'] = null; } } else if( $_POST && $_SESSION['back_to_hardsoft_results']) { $_SESSION['back_to_hardsoft_results'] = null; } ...some controls with the $_POST data... $search = $this->getQueryObject($this->type, $this->taxonomies, $this->historicalFilter()); include_once TEMPLATE_PATH . CUSTOM_POST_SLUG . '-' . RESULTS_PAGE . '-page.php'; } else if ( ...$_GET...) { ...other things... }
ユーザーが単一のページにアクセスすると、$_SESSION['back_to_page'] が作成されます。
getQueryObject php 関数 ajaxResultによって呼び出されます
$args = array ( ...some args... );
$q = new WP_Query ( $args);
// Save the query for back to results from single_mediateca_page
$_SESSION['back_to_hardsoft_results'] = $_POST;
return $q; }
ページの更新を強制するために、次の文字列を js ファイルに追加しました。
history.navigationMode = 'fast';
問題はブラウザのキャッシュにも関係していると思いますが、本当に問題が原因かどうかはわかりません. 助けてくれてどうもありがとう!