php - 我可以动态附加 og 标签并渲染它吗?

标签 php javascript html facebook

我正在尝试建立一个到我的网站和 Facebook 的链接,并在上面放置一些元数据!我的目标是管理这些数据:

<meta property="og:title" content="MY_PAGE_TITLE" /> 
<meta property="og:description" content="MY_DESCRIPTION_TEXT" /> 

不幸的是,我的 Web 应用程序(基于 PHP)结构不佳,而且我还没有定义正确的 MVC!这是非常程序化的,所以我应该在这些元标记上放置的信息是在渲染主 html header 部分之后从数据库中提取的。

所以,我尝试的是这样的:

<script type="text/javascript">
    $('head').append("<meta property=\"og:title\" content=\"MY_PAGE_TITLE\" />");
    $('head').append("<meta property=\"og:description\" content=\"MY_DESCRIPTION_TEXT\" />");
</script>

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/it_IT/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:like href="<?=$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]?>" send="false" layout="button_count" width="130" show_faces="false"></fb:like>

但事实上,它不起作用!我的意思是,在头部附加元标记,然后尝试渲染它。

你知道一些策略吗?我将避免选择直接将它们插入到头部,因为正如我所说,我想要插入的文本是在头部部分之后获得的(由于网站的组织错误)。

我相信另一种解决方案,希望你知道一个!

最佳答案

悲伤,但除了改变你的结构别无他法。即使使用您的 javascript,og: 标签也不会被处理的原因是 facebook 不渲染 javascript。它只是请求页面并从顶部读取 OG 标签,就像静态 HTML 一样。

您唯一的选择是更改结构并在输出之前加载内容。您不需要为此更改为 MVC,只需在头部之前加载内容即可为您节省大量工作,并且仍然可以工作...

关于php - 我可以动态附加 og 标签并渲染它吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9065234/

相关文章:

PHP - 调用自身的表单操作,如何在 1 页中显示所有内容?

php - 如何限制用户未登录就进入页面

javascript - Jquery slider (查询中的 php 值)

php - MySQL 查询正在创建重复行

javascript - 如何在不使用 setInterval/timeout 的情况下检查实时更新?

javascript - 我想使用 particle.js 制作一个网站,但左侧导航栏动画不起作用

javascript - 输出数字结果

PHP: mysql_fetch_array 排除重复条目

html - 具有蓝色背景颜色的 Div 在某些使用 IE8 的机器上显示为阴影

javascript - 如何将哈希历史添加到可过滤的投资组合中?