Webové zákusky

Základní náhledový obrázek

20. 5. 2022

Asi jsme všichni (hlavně jako vývojáři) potkali situaci, kdy uživatel nepřidal do příspěvku náhledový obrázek, a místo něj se zobrazil nějaký jiný (který pochází z šablony, ale není nijak hezký), nebo se nezobrazil pro jistotu žádný a vizuálně rozbil např. blog nebo sekci s rychlými zprávami a pod.

S pluginem

S pomocí přichází plugin Default featured image, který právě toto řeší.
Stačí ho nainstalovat a v Settings -> Media -> Default featured image.

Další možnosti

Tento plugin toho ovšem nabízí ještě víc, pokud se nebojíte sáhnout do functions.php (doporučuji udělat child theme, abyste kód neztratili po aktualizaci).

Vlastní custom post types

Např. pokud máte vlastní typy příspěvků a chcete nastavit náhledový obrázek pro každý typ zvlášť. V tu chvíli není třeba nastavit default featured image v Médiích, ale necháte jen instalovaný plugin a do functions přidáte kousek PHP kódu, jako je např. tento:

// default feature image for custom posts
add_filter('dfi_thumbnail_id', 'dfi_posttype_book', 10, 2);

function dfi_posttype_book($dfi_id, $post_id) {
    
    $post = get_post($post_id);

    if ('post' === $post->post_type) {
        return 3442; // the image id for the book post type
    }

    if ('atlet' === $post->post_type) {
        return 3834; // the image id for the book post type
    }

    if ('zavod' === $post->post_type) {
        return 3750; // the image id for the book post type
    }

    if ('trener' === $post->post_type) {
        return 4207; // the image id for the book post type
    }

    return $dfi_id; // the original featured image id
}

Případně můžete nastavit náhledový obrázek i podle kategorie příspěvku:

// default feature image for custom posts
add_filter('dfi_thumbnail_id', 'dfi_posttype_book', 10, 2);

function dfi_posttype_book($dfi_id, $post_id) {
    
    $post = get_post($post_id);

    if ('atlet' === $post->post_type) {		
        return 3834; // the image id
    }

    if ('zavod' === $post->post_type) {
        //return 3750; 

    if ('post' === $post->post_type) {
	//set image for concrete category of "post" post type
	if (has_category('vybor-informuje', $post_id)) {	
	    return 5670;
    	}
	//image for other categories of "post" post type
        return 5669;
    }

    // the original featured image id.
    return $dfi_id; 
}

Zdroje

Další články

Jak přidat fonty do DIVI

V článku o lokálních fontech v DIVI jsem popisovala, jak je možné přidat do DIVI vlastní font a co dělat, pokud DIVI daný formát fontu nepodporuje (tedy jiný formát než TFF nebo OTF). Někdy je...