Máte web se spoustou článků a už vám nevyhovuje starý vzhled webu? Není nic jednoduššího, než si vybrat pěknou šablonu a stránky začnou působit moderním dojmem. Co ale náhledové obrázky? Jít do každého článku a ručně vkládat obrázky musí být hrozná představa. S dnešním návodem tedy udělám radost všem, kteří řeší podobný problém. Jediné omezení tohoto řešení je, že každý obrázek bude vložen jako náhledový pouze jednou. Pokud je použit ve více článcích, bude přiřazen pouze jednou.
Do functions.php vložíme následující kód:
function auto_featured_image() {
global $post;
if (!has_post_thumbnail($post->ID)) {
$attached_image = get_children( "post_parent=$post->ID&post_type=attachment
&post_mime_type=image&numberposts=1" );
if ($attached_image) {
foreach ($attached_image as $attachment_id => $attachment) {
set_post_thumbnail($post->ID, $attachment_id);
}
}
}
}
Funkci musíme přiřadit nějaké akci a zde záleží na tom, zda chceme vytvářet náhledový obrázek automaticky při uložení článku, nebo zda chceme jen projít všechny články a pokud nemají náhledové obrázky, tak je vygenerovat.
Pokud chceme funkci využívat stále, přidáme pod funkci následující část kódu:
add_action('save_post', 'auto_featured_image');
add_action('draft_to_publish', 'auto_featured_image');
add_action('new_to_publish', 'auto_featured_image');
add_action('pending_to_publish', 'auto_featured_image');
add_action('future_to_publish', 'auto_featured_image');
Tím by jste měli generovat obrázek nejen při publikaci článku, ale i článku čekajících na publikaci, či schválení.
A nyní se dostáváme k tomu hlavnímu. Přidejte do functions.php tento řádek pod funkci:
add_action('the_post', 'auto_featured_image');
Pokud se článek zobrazí, měl by se automaticky vygenerovat náhledový obrázek. Což je pořád jednodušší, než je ručně vkládat. Pokud by bylo článků neúměrné množství, dala by se funkce upravit pro projití všech článků v databázi a vygenerování náhledu.