2017-11-16 19 views
1

をキャッシュされているから)(get_query_varを防ぐ:ワードプレス:私はPHPで以下のプラグインのコードを持って

function getHotels() { 
    if(get_query_var('htl_destination') !== null) { 
     $url = "http://xmlfeed.laterooms.com/index.aspx?aid=100&rtype=4&kword=".get_query_var('htl_destination')."&sdate=".get_query_var('htl_start_date')."&nights=".get_query_var('htl_nights').""; 
     $data = file_get_contents($url); 

     $xml = simplexml_load_string($data) or die("Error cannot create object"); 
     foreach($xml->hotel as $hotel) { 
      echo 
      "<div class='panel'> 
       <div> 
        <img class='img-left' src='{$hotel->images}'></img> 
        <div class='price'> 
         <p>Prices from</p> 
         <h1>£".str_replace(".0", "", $hotel->prices_from)."</h1> 
         <a href='#' class='view-now'>View now</a> 
        </div> 
        <div class='info'> 
         <h1>{$hotel->hotel_name}</h1>"; 
         for($i=0; $hotel->hotel_star > $i; $i++) { 
          echo "<i>&#9733;</i>"; 
         } 
         echo " 
         <p>{$hotel->hotel_address}</p> 
        </div> 
       </div> 
      </div>"; 
     } 
    } else { 
     echo "<p>No results</p>"; 
     print_r($_POST); 
    } 
} 

HTML:

<form method="get" action=""> 
    <input style="margin-left: 0% width: 25%" class="form-control htl_filter" type="text" name="htl_destination" placeholder="Destination" required> 
    <input style="margin-left: 0%" class="form-control htl_filter" type="date" name="htl_start_date" placeholder="Date" required> 
    <div class="htl_filter" style="margin-left: 0%;"> 
     <select name="htl_nights" required> 
      <option value="1">1 Night</option> 
      <?php 
       for ($i=2; $i < 29; $i++) { 
        echo "<option value={$i}>{$i} Nights</option>"; 
       } 
      ?> 
     </select> 
    </div> 
    <button style="width: 15%;" type="submit">Search</button> 
</form> 

フォームは、クエリ変数は以下のページに提出された場合キャッシュされ、結果は変更されません。

私たちのサイトにサイトグラスキャッシュプラグインがインストールされており、「SGキャッシュのパージ」をクリックするまで結果は変わりません。

私のプラグインがあるページのURLをsitegroundキャッシュプラグイン除外リストに追加しようとしましたが、成功しませんでした。

変数のキャッシュを停止する方法はありますか?

+0

です。 – Blackbam

+0

@Blackbam問題はPurge SG Cacheではありません。この情報を追加して、プラグインがサイトにインストールされていることを読者に認識させました。私は既にプラグインの除外リストにURLを追加しているので、そのプラグインを使用することは問題ではない可能性が非常に高いです。 –

+0

htl_destinationは正しく設定されていますか?あなたがそれを設定しなければ、明らかにそれは空になるでしょう。 – Blackbam

答えて

0

SGキャッシュプラグインを無効にしようとしたときに、Webページがサーバーによってキャッシュされていたために違いがない可能性があります。しかし、私はこれを私のgetHotels()関数に追加したので、コードは今働いているので、キャッシュをクリアするために呼び出すことができる関数があります。

機能を使用すると、パージSGキャッシュに問題がある場合は除外が機能しない理由、あなたが助けのためにそれらを頼む必要がある

if (function_exists('sg_cachepress_purge_cache')) { 
    sg_cachepress_purge_cache(); 
} 
関連する問題