我正在根据供应商提供的产品数据构建我的网站。所有与产品相关的页面都位于供应商的网站上。
供应商允许我创建“产品摘要”链接,以将其用作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');
我的问题是:
答案 0 :(得分:1)
替代file_get_contents(),您也可以使用cURL方法(参考"Download a URL’s Content Using PHP cURL")。就最佳实践而言,我认为任何一种方法都是合适的。有关性能差异的一些很好的信息here。
.load()函数可能无法正常工作的原因有很多。您是否检查过控制台是否有任何错误消息?您是否有理由决定使用wp_head()挂钩加载外部服务器页面内容?如果file_get_contents()正在提取额外的[html],[head]和[body]标签,那么在同一文档中有多个上述标签存在冲突。
您能为detail.html文档提供一些代码吗?具体来说,你正在摇摆#product-color。
答案 1 :(得分:0)
file_get_contents
是一个不错的选择。.load()
函数不起作用,则可能必须启用CORS。浏览器通常会阻止跨域请求以确保安全。