如何在joomla中使用php动态设置og:image元标记?

时间:2013-12-17 22:14:30

标签: php html facebook joomla meta-tags

我正在尝试为joomla 1.5网站动态设置og:image元标记,并在网址的一部分上添加逻辑。

这是代码:

<?php 
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
if (strpos($actual_link,'basket') !== false) { 
?>

<meta property="og:image" content="http://astel-teglio.it/site/images/Basketball.png" />

<?php
}else{
?>

<meta property="og:image" content="http://astel-teglio.it/site/images/LOGO.jpg" />

<?php
}
?>

逻辑非常简单,如果网址包含篮子,我想使用图片Basketball.png,否则LOGO.jpg。

如果我在浏览器中查看源代码,我会看到正确的属性,但在粘贴Facebook上的链接时,我总是看到徽标图像(否则为大小写)。

有两个示例页面:

2 个答案:

答案 0 :(得分:1)

在Joomla中,您可以动态设置og:属性或元标记,如下所示。

$doc =& JFactory::getDocument();
if($shareTitle != '')
    $doc->addCustomTag( '<meta property="og:title" content="'.$shareTitle.'" />'  );
if($shareDesc != '')
    $doc->addCustomTag( '<meta property="og:description" content="'.$shareDesc.'" />' );
if($shareImg != '')
    $doc->addCustomTag( '<meta property="og:image" content="'.$shareImg.'" />' );

您还可以查看How to set meta data of a page in joomla

Facebook也有缓存问题,您可以调试here

希望这会有所帮助..

答案 1 :(得分:0)

我认为问题是由改变我的网址的SEF URLs引起的:

http://astel-teglio.it/site/index.php?option=com_content&view=article&id=317

为:

http://astel-teglio.it/site/it/minibasket/stagione-20132014/scoiattoli/317--morbegno--molino-tudori-teglio-12-12.html

但是当facebook加载元标记时,它会加载url字符串中没有篮子的原始网址,因此会加载标准图像。