使用javascript在wordpress文章中设置og:image和twitter:image meta

时间:2016-02-01 10:33:13

标签: javascript wordpress facebook-opengraph opengraph twitter-card

我正在开发一个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);
};

1 个答案:

答案 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);
};