0

我正在根据供应商提供的产品数据构建我的网站。所有与产品相关的页面都位于供应商的网站上。

供应商允许我创建一个“产品摘要”链接以将其用作 Wordpress 中的帖子。基本上,该帖子包含带有简短信息的产品列表。

如果我单击其中一种产品,它将带我进入“产品详细信息”页面,该页面再次位于供应商的服务器上。

在这一点上,我所能做的就是在我的首页上显示“产品摘要”帖子作为预告片。

我真正想在首页用作预告片的是一些产品而不是产品摘要。

我使用 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是一个很好的选择。
  2. 如果该.load()功能不起作用,您可能必须启用 CORS。为安全起见,浏览器通常会阻止跨域请求。
于 2012-10-30T18:02:45.570 回答