WordPress Hook – 當 Jetpack 相關文章遇上沒有設定精選圖片的一種解決方式(jetpack_images_get_images)

當你的網站有使用 Jetpack,並且有開啟「相關文章」功能時

Jetpack 本身取得文章時的預覽圖片,取決於你有沒有設定精選圖片

若沒有設定精選圖片,那顯示出來的就只有標題沒有圖片

WordPress Hook - 當 Jetpack 相關文章遇上沒有設定精選圖片的一種解決方式(jetpack_images_get_images) - Barry 隨手寫
未設定圖片的相關文章區域

於是可以使用下面方式,告訴 Jetpack 如果沒有取到圖片時,可以抓取文章第一張圖片或預設圖片當作預覽圖

function achang_jetpack_images_get_images( $media, $post_id, $args ) {

    // 當 Jetpack 沒有抓到圖片時
    if ( !$media && $post_id ) {
        // 取得文章資料
        $post_object = get_post($post_id);

        // 過濾出文章內第一張圖片的網址
        preg_match('/< *img[^>]*src *= *["']?([^"']*)/i', $post_object->post_content, $matches);
        if( !empty($matches[1]) ){
            $img_url = $matches[1];

            $url = apply_filters( 'jetpack_photon_url', $img_url );
            $media = array( array(
                'type'  => 'image',
                'from'  => 'custom_fallback',
                'src'   => esc_url( $url ),
                'href'  => get_permalink( $post_id ),
            ) );
        }
    }

    return $media;
}
add_filter( 'jetpack_images_get_images', 'achang_jetpack_images_get_images', 10, 3 );

套用之後就會出現啦~

WordPress Hook - 當 Jetpack 相關文章遇上沒有設定精選圖片的一種解決方式(jetpack_images_get_images) - Barry 隨手寫
套用程式碼後的相關文章區域

當然這段程式要放在佈景底下的 functions.php 才有效哦

(也可以寫在外掛裡面啦)

對了~後台的設定>閱讀裡面的「使用大型、引人注目的版面形式」要打勾,預設才會使用圖片格式喔

WordPress Hook - 當 Jetpack 相關文章遇上沒有設定精選圖片的一種解決方式(jetpack_images_get_images) - Barry 隨手寫

相連文章

臉書留言

一般留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *