【问题标题】:WP SEO by Yoast - How to set different og:image per categoryYoast 的 WP SEO - 如何为每个类别设置不同的 og:image
【发布时间】:2015-02-03 09:07:00
【问题描述】:

我想为 Wordpress 中的特定帖子设置单独的 facebook 开放图元图像 (og:image)。

例如,如果帖子属于类别 1,则将 og:image 设置为 cat_1_image.jpg,如果帖子属于 id = 2 的类别,则将其设置为 cat_2_image.jpg

伪代码:

if($category->term_id == 1)
    og:image = 'cat_1_image.jpg';
elseif($category->term_id == 2)
    og:image = 'cat_2_image.jpg';
elseif($category->term_id == 3) // CatID 3 means 'Post has images, no default og:image, please'
    og:image = '';

现在,我查看了 wpseo 的各种钩子,例如 wpseo_pre_analysis_post_contentwpseo_opengraph_image,但这似乎没有朝着正确的方向发展。

谁能给我解释一下如何为不同的帖子类别实现不同的 og:images ?!

我 hack 的原因:WP SEO 不会拾取使用图库短代码插入帖子的图像。它将回退以包含默认图像(在 WP SEO 选项下指定)作为 og:image。因此,我想禁用包含某个类别(即类别“has_images”)的帖子的默认图像,并让 facebook 刮板拾取画廊图像 - 如果没有默认 og:image 存在,它们会被拾取!

【问题讨论】:

    标签: php wordpress image facebook-graph-api seo


    【解决方案1】:

    您可以尝试这样的事情(未经测试)。它对 opengraph 图像使用 wpseo_opengraph_image Yoast 过滤器。

    add_filter('wpseo_opengraph_image', 'category_image');
    function category_image($image) {
       global $post;
       if( in_category( 'category1', $post->ID ) ) {
           $image = get_stylesheet_directory_uri().'/images/cat_1_image.jpg';
       } elseif(in_category( 'category2', $post->ID )) {
           $image = get_stylesheet_directory_uri().'/images/cat_2_image.jpg';
       }
       return $image;
    }
    

    在这个例子中,我猜你的图片在你的主题图片文件夹中。

    【讨论】:

    • 很好,谢谢@Rich,代码运行良好!问题解决了!我喜欢!
    【解决方案2】:

    请注意,Rich 提供的接受答案仅在您的 Wordpress 主题/功能为帖子设置 _thumbnail_id 元值时才有效。在我的情况下,它没有(由于各种自定义),所以我不得不通过向get_post_metadata 添加过滤器并在获取元数据时返回正确的自定义 thumbnail_id 来伪造该部分:

    add_filter('get_post_metadata', 'so28295023', 10, 4);
    function so28295023($ignore, $object_id, $meta_key, $single ) {
        if($single && $meta_key == '_thumbnail_id') {
            return get_custom_thumbnail_id();
        }
    }
    

    当然,get_custom_thumbnail_id() 是我自己的函数,它返回我想要附加的缩略图的 ID。我没有找到简单返回缩略图路径而不是 ID 的方法。

    【讨论】:

    • 直到我在 Yoast 的 SEO > Social > Facebook 设置中设置默认的 OG 共享图像之前,接受的答案对我不起作用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2022-08-02
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多