Yo SEO的WP SEO - 如何设置不同的og:每个类别的图像

Seb*_*ian 1 php wordpress seo image facebook-graph-api

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

例如,设置og:imagecat_1_image.jpg如果柱是在类别1,并且将其设置为cat_2_image.jpg,如果该信息是与ID = 2的类别.

伪代码:

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 = '';
Run Code Online (Sandbox Code Playgroud)

现在,我已经看了wpseo的各种钩子,像wpseo_pre_analysis_post_contentwpseo_opengraph_image,但是这似乎并没有在正确的方向引导.

任何人都可以向我解释如何实现不同的og:不同类别的图像?!

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

Ric*_*ich 5

你可以尝试这样的事情(未经测试).它使用wpseo_opengraph_imageYoast过滤器作为opengraph图像.

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;
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我猜你的图像是在你的主题图像文件夹中.