0

ベンダーから提供された製品データに基づいてサイト ベースを構築しています。すべての製品関連ページはベンダーのサイトにあります。

ベンダーは、「製品概要」リンクを作成して、Wordpress の投稿として使用することを許可しています。基本的に、投稿には簡単な情報を含む製品のリストが含まれています。

製品の 1 つをクリックすると、ベンダーのサーバーにある「製品詳細」ページに移動します。

この時点で私にできることは、「製品概要」の投稿を私のフロント ページにティーザーとして表示することだけです。

トップページのティーザーとして本当に使用したいのは、製品概要ではなくいくつかの製品です.

file_get_contents() を使用して、「詳細」投稿で製品の詳細をエコーし​​ました。

function demo_file_get_contents(){
    if(is_page('detail')){
       echo file_get_contents('http://vendorsite.com/product.html');
    }
}
add_action('wp_head','demo_file_get_contents');

次に、「緑色」属性を取得しようとしたので、この製品を「緑色」カテゴリに割り当て、フロント ページに緑色の製品ティーザーのグループとして製品を表示できます。

function demo_retriveAttr(){
  if(is_page('detail')){
     ?>            
        <script type="text/javascript">                
          jQuery(document).ready(function() {   
            $('#color').load('http://mysite.com/detail.html #product-color');            
          });
        </script>
      <?php
  }
}
add_action('wp_footer','demo_retriveAttr');

私の質問は次のとおりです。

  1. file_get_contents は外部データを取得するためのベスト プラクティスですか?
  2. .load() 関数が機能しませんでした。何が間違っていましたか?
4

2 に答える 2

1
  1. file_get_contents() の代わりに、cURL メソッドを使用することもできます ( 「PHP cURL を使用して URL のコンテンツをダウンロードする」を参照)。ベスト プラクティスに関しては、どちらの方法も適切だと思います。ここには、パフォーマンスの違いに関する良い情報がいくつかあります

  2. .load() 関数が機能しない理由はいくつかあります。コンソールでエラー メッセージを確認しましたか? wp_head() フックを使用して外部サーバー ページのコンテンツを読み込むことにした理由はありますか? file_get_contents() が追加の [html]、[head]、および [body] タグをプルしている場合、ほとんどの場合、同じドキュメント内に前述のタグが複数あると競合します。

detail.html ドキュメントのコードを教えてください。具体的には、 #product-color を揺らしている場所です。

于 2012-10-30T18:20:28.850 に答える
0

クイックアンサー

  1. file_get_contentsサーバーが Web サイトにアクセスできる場合は、これが適しています。
  2. .load()関数が機能しない場合は、CORS を有効にする必要がある場合があります。クロス ドメイン リクエストは、通常、安全のためにブラウザによってブロックされます。
于 2012-10-30T18:02:45.570 に答える