1

ユーザーがいくつかのカスタム投稿で検索を実行できるようにするワードプレス プラグイン ページに取り組んでいます。検索フォームはスクリプト ajax に基づいており、検索ボタンをクリックすると、スクリプト jquery が呼び出しをインターセプトし、wordpress の ajax 呼び出しを作成します。この呼び出しは、問題の wordpress プラグインのクラス内でメソッドを起動し、検索フォームから $ _POST を介して渡されたデータを処理します。次に、結果が表示され、これらのいずれかをクリックすると、単一のページに送信されます。私がしようとしているスクリプトは、ユーザーがブラウザの戻るボタンを使用して単一のページから検索結果に戻ることを許可する必要があります。問題は、このスクリプトが PC のローカルでは正常に動作することですが、オンラインで読み込まれると、このプラグインが動作しなくなります。(長い紹介で申し訳ありませんが、問題を明確に定義するのに役立ちました)。

スクリプトは次のように機能します。

  1. 検索フォームに入力し、検索ボタンをクリックします
  2. $_POST にはフォーム データが入力され、$_SESSION には $_SESSION = $_POST が入力されます。
  3. 結果を開いて単一のページに移動し、ブラウザに戻ります
  4. コントロール $_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';

問題はブラウザのキャッシュにも関係していると思いますが、本当に問題が原因かどうかはわかりません. 助けてくれてどうもありがとう!

4

1 に答える 1

0

ここの Codeigniter セッションからの適応がこのhttps://wordpress.stackexchange.com/a/72744を見てください。

$_POST['results'] のようなものを使用して $_SESSION['back_to_hardsoft_results'] を特定のインデックスに配置するべきではありません。

于 2013-05-13T17:26:04.710 に答える