[英]How to update meta tags dynamically
我知道这个问题很多,但是我还不能解决我的问题。
我有一个由php驱动的包含视频的网站。 不同的视频都有自己的URL,例如index.php?id = 1 。 对于Facebook分享,我希望每个视频/ URL都有更新的元标记。
每个视频的信息(标题,说明等)都存储在数据库中,我已经成功地将该信息检索到了我的站点。
这是将变量从javascript传递到PHP的脚本:
<script>
var video;
var URL = document.location;
function setVideo(src){
video = src;
$(document).ready(function(){
$.ajax({
url: URL,
type: 'GET',
data: {
videoPHP: video,
},
success: function(data) {
// This prints the php result to html
$('#headerFromFile').html(data)
}
});
});
}
</script>
这是PHP:
if (isset($_GET['videoPHP'])) {
$videoID = $_GET['videoPHP'];
// SQL query
$sql = "SELECT * FROM Videos WHERE ID='$videoID'";
$result = $connect->query($sql);
$row = $result->fetch_assoc();
?>
<h1><?php echo $row['Header'];?></h1>
<p><?php echo $row['Description'];?></p>
<?php
通过这样做,我可以将视频的标头和说明回显到html文档中的div #headerFromFile 。
但是,问题是我希望将此信息存储到当前URL的meta属性=“ og:title”和meta属性=“ og:description” 。
非常感谢您的帮助。
在您的Ajax运行之前,将meta标记写入dom。 我建议您在页面加载之前获取数据库的数据争用,并将变量放入meta标记中。
但是,如果我理解正确,则在加载dom后以及在将旧的元数据发布到Facebook时,您的内容可能会更改。 我不知道这是否会有所帮助,因为Facebook可能也无法获取更新的meta标签,而是尝试像这样更改meta tage ...
$('meta[name=description]').remove();
$('head').append( "<meta name='description' content='Video Title'>" );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.