| 15 | /** |
| 16 | * Open Graph Default Image for single posts, when no other image can be found in the post. |
| 17 | * |
| 18 | * 4 levels of fallback: |
| 19 | * - Site Logo -- http://jetpack.me/support/site-logo/ |
| 20 | * - Site Icon -- https://make.wordpress.org/core/2015/07/27/site-icon/ |
| 21 | * - Header Image -- https://codex.wordpress.org/Custom_Headers |
| 22 | * - Global default OG image -- See `jetpack_open_graph_image_default` filter above. |
| 23 | */ |
| 24 | function default_single_og_image( $media, $post_id, $args ) { |
| 25 | if ( $media ) { |
| 26 | return $media; |
| 27 | } else { |
| 28 | |
| 29 | // First fallback, Site Logo, if the theme supports it and if the site owner uploaded a logo |
| 30 | if ( function_exists( 'jetpack_has_site_logo' ) && jetpack_has_site_logo() ) { |
| 31 | $img_src = jetpack_get_site_logo( 'url' ); |
| 32 | } |
| 33 | |
| 34 | // Second fallback, Site Icon |
| 35 | if ( empty( $img_src ) && ( function_exists( 'has_site_icon') && has_site_icon() ) ) { |
| 36 | $img_src = get_site_icon_url( null, '512' ); |
| 37 | } |
| 38 | |
| 39 | // Third fallback, Header image |
| 40 | if ( empty( $img_src ) && has_header_image() ) { |
| 41 | $img_src = get_header_image(); |
| 42 | } |
| 43 | |
| 44 | // Fourth fallback, default image |
| 45 | if ( empty( $img_src ) ) { |
| 46 | $img_src = apply_filters( 'jetpack_open_graph_image_default', 'https://s.w.org/images/backgrounds/wordpress-bg-medblue.png' ); |
| 47 | } |
| 48 | |
| 49 | return array( array( |
| 50 | 'type' => 'image', |
| 51 | 'from' => 'custom_fallback', |
| 52 | 'src' => esc_url( $img_src ), |
| 53 | 'href' => get_permalink( $post_id ), |
| 54 | ) ); |
| 55 | } |
| 56 | } |
| 57 | add_filter( 'jetpack_images_get_images', 'default_single_og_image', 10, 3 ); |
| 58 | |
| 59 | |