我正在开发一个WP网站,我对代码很新,所以在我努力工作一整天后,我就放弃了,并决定问别人。
我将动态元数据用于除图像之外的所有开放图形和推特卡片。 所有网站页面都有一个容器内有文章;有些文章有图像,有些文章没有。对于没有图像的人,我想使用公司徽标。
所以我想使用javascript将og:image和twitter:image添加到wordpress,但我无法克服一个错误:
document.getElementsByTagName(“”)不是函数
//add image meta tag
addImageMetaTag();
function addImageMetaTag() {
var imgHolder = document.getElementsByTagName("article")[0];
var image = imgHolder.getElementsByTagName("img");
var source;
function getSource() {
if (image.length != 0) {
var source = image[0].getAttribute("src");
} else {
var source = "http://link_to_my_default_image.png";
}
return source;
};
var meta = document.createElement('meta');
meta.setAttribute("property", "og:image");
meta.content = source;
meta.name = "twitter:image";
document.getElementsByTagName('head')[0].appendChild(meta);
};
答案 0 :(得分:0)
Gerald,开放图和推特卡用于创建共享代码段,因此它与抓取无关。
你的答案是正确的,有两个错误:确实,我使用了“getSource”而不是“source”,但是Wordpress仍然找不到“article”类,因为内容在标题之后加载,所以我有“var content = undefined”,所以我通过将其更改为此函数来使用该函数:
// add image meta tag
window.addEventListener("load", function() {
addImageMetaTag();
});
function addImageMetaTag() {
var content = document.getElementById("primary");
var images = content.querySelectorAll("img");
var source;
if (images.length != 0) {
var source = images[0].getAttribute("src");
}
else {
var source = "http://link_to_my_default_image.png";
}
var meta = document.createElement('meta');
meta.setAttribute("property","og:image");
meta.content = source;
meta.name = "twitter:image";
document.getElementsByTagName('head')[0].appendChild(meta);
};