wordpress - 如何知道 yoast seo 图片是否上传并在 wordpress 中为 og:image 添加条件
问题描述
在用于社交共享的 WordPress 中,我使用的是 yoast seo 插件。现在根据客户要求,我需要为 og:image 设置条件,如下所示。
- 如果在 yoast 元框中为帖子/页面添加了图像,则显示该图像
- 如果 yoast seo 中没有图片,请检查帖子/页面中的特色图片
- 如果 yoast seo 和特色图像中没有图像,则显示设置中的一些图像。我如何知道图像是否上传到特定页面的 yoast 元框中并满足上述要求?我尝试了以下方法,但它只替换了 yoast 元框中的图像。
add_filter( 'wpseo_opengraph_image', 'ag_yoast_seo_fb_share_images', 10, 1 );
function ag_yoast_seo_fb_share_images( $img ) {
return ( $img && ! empty( $img ) ) ? $img : get_field( 'social_share_image', 'options' );
};
解决方案
以下解决方案对我有用。
add_action( 'wp_head', 'insert_fb_in_head', 5 );
function insert_fb_in_head() {
global $post;
if( ! has_post_thumbnail( $post->ID ) ) { //the post does not have featured image, use a default image
$default_image = get_field( 'social_share_image', 'options' ); //replace this with a default image on your server or an image in your media library
echo '<meta property="og:image" content="' . $default_image . '"/>';
} else{
$thumbnail_src = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'medium' );
echo '<meta property="og:image" content="' . esc_attr( $thumbnail_src[0] ) . '"/>';
}
}
推荐阅读
- mysql - 如何对多个表进行 SQL 连接(FK 表有循环的结果共享 ID)
- ios - 在黑盒情况下处理丢失的 dSYM 文件
- apache-spark - 为什么 Pyspark 没有编码器
- r - 在条件之前和之后的行中添加包含数据的列
- javafx - 如何为 JavaFX TableView 列制作通用 TableColumn 渲染器
- npm - 无法解决节点项目中的对等依赖项
- c# - 为远程进程从外部调用 FreeLibraryAndExitThread
- python - 使用扩展的 django 用户模型更新配置文件模型中的数据
- mqtt - 我正在编写一个代码来读取 DHT11 值并控制 4 个继电器但温度。传感器每次都向我显示“nan”
- javascript - 有没有办法在不篡改浏览器历史状态的情况下使用后退按钮关闭模式?