如何自定义我的 WordPress post 生成的 wp-json oembed?
How can I customize my WordPress post's generated wp-json oembed?
我通过 LinkedIn Inspector 注意到我的 post 的缩略图是从 wp-json 生成的 oembed 中抓取的,而不是我的 Yoast SEO 开放图元标记。如何自定义 oembed 以不使用特色图像并使用自定义图像?我已经通过 Yoast SEO 为 Facebook 和 Twitter 设置了自定义图像,我假设 LinkedIn 会从 Facebook 方面获取 OG 元标签,但它并没有这样做,它跳过它以支持生成的 oembed [= post.
中的 18=] 文件
您可以使用 Yoast SEO v14+ 中的 Schema API 调整图像。
<?php
/**
* Changes url of Main_Image (ImageObject) Schema data.
*
* @param array $data Schema.org Main_image data array.
* @return array Schema.org Main_image data array.
*
* @link https://developer.yoast.com/features/schema/api#to-add-images-to-your-schema
*/
add_filter( 'wpseo_schema_main_image', 'example_change_wpseo_image' );
function example_change_wpseo_image( $data ) {
$attachment_ID = '123';
$img_src = wp_get_attachment_image_src( $attachment_ID, 'full' );
if (! empty( $img_src )){
$url = $img_src[0];
$data['url'] = $url;
}
return $data;
}
我通过 LinkedIn Inspector 注意到我的 post 的缩略图是从 wp-json 生成的 oembed 中抓取的,而不是我的 Yoast SEO 开放图元标记。如何自定义 oembed 以不使用特色图像并使用自定义图像?我已经通过 Yoast SEO 为 Facebook 和 Twitter 设置了自定义图像,我假设 LinkedIn 会从 Facebook 方面获取 OG 元标签,但它并没有这样做,它跳过它以支持生成的 oembed [= post.
中的 18=] 文件您可以使用 Yoast SEO v14+ 中的 Schema API 调整图像。
<?php
/**
* Changes url of Main_Image (ImageObject) Schema data.
*
* @param array $data Schema.org Main_image data array.
* @return array Schema.org Main_image data array.
*
* @link https://developer.yoast.com/features/schema/api#to-add-images-to-your-schema
*/
add_filter( 'wpseo_schema_main_image', 'example_change_wpseo_image' );
function example_change_wpseo_image( $data ) {
$attachment_ID = '123';
$img_src = wp_get_attachment_image_src( $attachment_ID, 'full' );
if (! empty( $img_src )){
$url = $img_src[0];
$data['url'] = $url;
}
return $data;
}