rbl*_*sen 6 html php joomla facebook facebook-graph-api
我有一个Joomla页面(v3.2.4),我用PHP放入了一些动态Open Graph标签,如下所示:
PHP,在标记之前:
$getcid = JRequest::getVar('id');
if(!isset($getcid)) {
$title = "LIVA Kurser";
$description = "Danmarks største udbyder af kurser til såvel offentlige og erhverv samt private.";
$image = "http://www.livakursertestsite.dk/images/liva-logo.jpg";
$type = "website";
} else {
$db = JFactory::getDbo();
$user = JFactory::getUser();
$query = $db->getQuery(true);
$ogquery = "SELECT DISTINCT * FROM jos_managecourse WHERE state = '1' AND id = '".$getcid."' LIMIT 1";
$db->setQuery($ogquery);
$db->query();
$getcourse = $db->loadObjectList();
$description = substr(strip_tags($getcourse[0]->details), 0, 247);
$title = $getcourse[0]->course_name;
$description = preg_replace( "/\r|\n/", "", $description );
$description = str_replace( " ", " ", $description );
$image = JURI::root()."administrator/components/com_managecourse/images/".$getcourse[0]->image_url;
$type = "article";
}
Run Code Online (Sandbox Code Playgroud)
在我的标签中我有这个:
<!-- Facebook Open Graph -->
<meta property="fb:app_id" content="502033806595590" />
<meta property="og:site_name" content="LIVA Kurser" />
<meta property="og:type" content="<?php echo $type; ?>" />
<meta property="og:title" content="<?php echo $title; ?>" />
<meta property="og:url" content="<?php echo JURI::current(); ?>" />
<meta property="og:image" content="<?php echo $image; ?>" />
<meta property="og:description" content="<?php echo $description; ?>..." />
<!-- End Facebook Open Graph -->
Run Code Online (Sandbox Code Playgroud)
当我通过Facebook对象调试器运行页面时,我收到以下两个错误:
"网站"类型的URL" http://www.livakursertestsite.dk/kurser/babytegn-2 "上的对象无效,因为未提供"string"类型的必需属性"og:title".
第二个错误:
卷曲错误:BAD_CONTENT_ENCODING处理内容取消编码时出错:无效的块类型
我试过了:
你可以在这里看到这个网站:http://www.livakursertestsite.dk/kurser/babytegn-2
编辑:
我已从标签中删除了PHP代码,因此它们不再是动态的,看看是否是原因,但事实并非如此.现在代码看起来像这样:
<meta property="og:locale" content="da_DK" />
<meta property="og:type" content="website" />
<meta property="og:title" content="LIVA Kurser" />
<meta property="og:description" content="Beskrivelse..." />
<meta property="og:url" content="http://www.livakursertestsite.dk/kurser" />
<meta property="og:image" content="http://www.livakursertestsite.dk/images/liva-logo.jpg" />
<meta property="fb:app_id" content="502033806595590" />
<meta property="og:site_name" content="LIVA Kurser" />
Run Code Online (Sandbox Code Playgroud)
我现在也尝试过:
并且Facebook Debugger仍然无法获取数据.
编辑#2:
在@CBroe的评论之后我修复了页面,所以可以验证它,没有错误,但仍然没有运气.
Tee*_*and 16
您可能想尝试禁用任何类型的压缩,例如PHP中的GZIP压缩.这帮助我在Joomla 3.3网站上遇到了类似的问题.
我启用了GZIP压缩,Facebook无法抓取我的网站.禁用GZIP压缩解决了这个问题.
我还没想到它是Joomla问题还是一般的GZIP/PHP问题还是facebook刮痧问题.
编辑:通过分享行动,Facebook只读取您页面的前40k.启用GZIP时,只读取前40k会产生问题,因为它无法解压缩部分内容.
更好的解决方案是仅针对Facebook,LinkedIn等网站禁用GZIP.
你可以使用名为gzip的小插件非常友好的控件:http://extensions.joomla.org/extensions/core-enhancements/performance/site-performance/27725
或者使用此代码https://github.com/dgt41/(压缩xml和php文件,您可以将其安装为插件)
请注意:如果您的站点上安装了JCH Optimize模块,则需要禁用该插件提供的gzip压缩.所有其他选项可以保持激活而不会出现任何问题,包括本机Joomla gzip压缩.
干杯,Teeuwis
| 归档时间: |
|
| 查看次数: |
18205 次 |
| 最近记录: |