我的应用程序使用数据库记录的信息动态呈现Facebook元(og:title,og:title)。
当我从浏览器中单击查看源时,我看到记录正确呈现。 但是,当我使用Facebook调试器(https://developers.facebook.com/tools/debug)查看完全相同的页面时,元标记的值为空,这意味着它不会从我的数据库中读取。
之前遇到类似问题的人,似乎应用程序的速度不足以呈现数据库记录?
代码 这是布局文件中的内容:
<?php
// for Facebook
if(!isset($meta_title)) {
$meta_title = 'Default title';
}
if(!isset($meta_location)) {
$meta_location = FULL_BASE_URL.$this->here;
}
if(!isset($meta_image)) {
$meta_image = FULL_BASE_URL.$this->webroot.'img/facebook-icon.gif';
}
if(!isset($meta_type)) {
$meta_type = 'article';
}
if(!isset($meta_des)){
$meta_des = 'Default title';
}
?>
<meta property="og:site_name" content="<?php echo __('SgVoucher'); ?>"/>
<meta property="og:type" content="<?php echo $meta_type; ?>"/>
<meta property="og:title" content="<?php echo $meta_title; ?>"/>
<meta property="og:url" content="<?php echo $meta_location; ?>"/>
<meta property="og:image" content="<?php echo $meta_image; ?>"/>
<meta property="og:description" content="<?php echo $meta_des; ?>"/>
在控制器中,我重试了数据库记录以提供动态标题。
//in the controller
$dynamic = $this->Model->find('first'....);
$this->set('meta_title',$dynamic['Table']['field']
但它从未在数据库中显示正确的内容,它始终显示来自Facebook调试器的“默认标题”,但是当您单击查看源时它是正确的。
链接 如果它有助于调试,则链接位于http://www.sgvoucher.com/deals/view/free_ipad_with_wi-fi_16gb_3rd_generation_giveaway。