Octobercms - og:image

时间:2015-06-19 11:18:08

标签: facebook-graph-api blogs octobercms

我使用octobercms和插件rainlab博客设置了一个博客。现在的问题是我想使用特色图像作为Facebook共享图像。

如何做到这一点?当我进入Facebook调试器时,我可以看到徽标和我的特色图像,但是一旦我分享它,显示图像就是徽标。

非常感谢

2 个答案:

答案 0 :(得分:3)

在您用于博文的页面/布局中,如果您还没有添加OpenGraph标签,则需要添加。

<meta property="og:url" content="http://www.yourwebsite.com" />
<meta property="og:type" content="website" />
<meta property="og:image" content="{{ this.getShareImageUrl }}" />
<meta property="og:title" content="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod" />
<meta property="og:description" content="Lorem ipsum dolor sit amet, consectetur adipisicing elit. Obcaecati modi illo explicabo quidem ipsa, voluptatum quibusdam, nemo veritatis enim eveniet doloribus et eius voluptate nam cum veniam, fugit. Dolorum, adipisci." />

Facebook需要这些标签来提取正确的数据。您可能会发现this对于了解有关这些标记的更多信息非常有用。

所以你现在应该需要的是正确的featured_image的url,因为你很可能有多个feature_image。您可以根据需要选择编写该逻辑(因此我只是在上面的代码中使用了方法调用),但是一旦获得了所需的featured_image实例,就可以在实例上使用getPath()方法来获取url(因为它是File类的一个实例,你可以在它上面使用这些方法)。

您可以在此处阅读更多文档 - http://octobercms.com/docs/database/model#file-attachments

那就是它,回到FB调试器并按下调试。如果它不起作用,请尝试使用另一个按钮,其中显示“获取新的抓取信息”&#39; (只有在你已经按下调试按钮后才出现),你应该很好。

我刚刚通过这些步骤进入一个新网站,我不得不让facebook重新开始工作。如果这对您有用,请告诉我们。

答案 1 :(得分:0)

这可能会迟到但我遇到了同样的问题并使用此代码将图片从您的博客页面传递到布局文件: -

function onEnd() {
    $_post = $this->components['blogPost'];
    if ($_post->featured_images->first()) {
        $this->page->og_image = $_post->featured_images->first()->path;
    }
}

这将允许您在布局文件中使用此标记(使用<head>): -

{% if this.page.og_image %}
     <meta property="og:image" content="{{ this.page.og_image }}" />
{% else %}