0

我在一个 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);
};
4

1 回答 1

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);
};
于 2016-02-03T11:40:24.897 回答