更新:我试图在下面写出的所有数据实际上是在页面加载后在源代码中看到的。当我说它不起作用时,我指的是 Facebook 共享者没有正确拾取 og 标签的事实。
所以我有一个页面,顶部有许多包含,使用会话变量进行一些查询。一切都很好。当我回显它们时,会话变量都会填充到我需要它们的位置。例子:
<title><? echo $_SESSION["clientName"] ?></title>
问题是当我开始将它们写入 og 元数据时。
<meta property="og:description" content="<? echo $_SESSION["clientName"]; ?>"/>
这让我将数据写入标签。我在源代码中看到它,但当共享者被激活时,Facebook 认为它什么都不是。现在,如果我使用任何类型的会话定义了一个来自没有查询的本地 php 变量,那么它在共享器中读取得很好。
$clientName="University of Alaska";
<meta property="og:description" content="<? echo $clientName; ?>"/>
这让我很困惑!它是否没有及时设置,因为它试图先填充?我的一个包含页面正在做一些繁重的工作。在加载所有内容之前会话是否完全设置?
完整代码
<?
session_start();
include '../includes/connection.php';
include '../includes/getMajorExtra.php';
include '../includes/getHiddenList.php';
include '../includes/getMajorList.php';
?>
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<META http-equiv="Content-type" content="IE=edge,chrome=1; charset=iso-8859-1">
<?
$query = "SELECT clientID,active,customer FROM client WHERE subdomain='".$_SESSION["clientURL"]."'";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
$activeClient=$row["active"];
$clientName=$row["customer"];
$clientID=$row["clientID"];
}
mysql_free_result($result);
echo "<meta property=\"og:title\" content=\"".$clientName."\">";
?>
<meta property="og:image" content="http://themajorkey.com/images/MK_logo.png"/>
<meta property="og:description" content="<? echo $_SESSION["clientName"]; ?>"/>
<title><? echo $_SESSION["clientName"]; ?></title>