Intr-un articol de zilele trecute, vorbeam despre Cum sa setezi o imagine reprezentativa default in WordPress, folosing un plugin. Astazi, vom discuta despre aproape acelasi lucru insa fara sa folosim un plugin ci editand anumite fisiere ale temei.
Cum sa adaugi o imagine de brand ca Default fallback featured image
De multe ori, in momentul in care lucrezi la un site pentru un client, s-ar putea sa descoperiti ca are foarte multe posturi insa aproape nici o imagine. Asadar, e foarte bine pentru designeri sa creeze o imagine de brand care sa fie afisata pentru posturile care nu au un thumbnail specific atasat. Filosofia din spatele acestei idei este asemanatoare cu cea de inserarea a unui gravatar customizat in WordPress.
Tot ce trebuie sa faci este sa deschizi fiesierul temei unde vrei sa fie afisat thumbnail-ul. Poate fi vorba despre (home.php, loop.php, single.php. index.php, archive.php etc). Apoi, doar da paste la codul de mai jos:
<?php if ( has_post_thumbnail() ) { the_post_thumbnail(); } else { ?> <img src="<?php bloginfo('template_directory'); ?>/images/default-image.jpg" alt="<?php the_title(); ?>" /> <?php } ?>
Explicatie: Codul verifica daca postul are setat un thumbnail anume si daca este, il va afisa. Daca nu gaseste, va afisa „default-image.jpg” din folderul de imagini al temei.
Acest exemplu este unul foarte simplu. Bineinteles ca il poti customiza modificand marimile etc.
Adaugarea primei imagini din post ca default
De multe ori, bloggerii noi folosesc imagini in posturi insa uita sa adauge si imagini reprezentative sau nu stiu cum sa faca asta. Indiferent de caz, developerii ar trebui sa se pregateasca in avans. In momentul in care folosesti un framework de tema ca cel al Genesis, poti seta ca prima imagine din post sa fie folosita drept post thumbnail. Pentru asta, trebuie sa adaugi urmatorul cod in fisierul functions.php al temei:
//function to call first uploaded image in functions file function main_image() { $files = get_children('post_parent='.get_the_ID().'&post_type=attachment &post_mime_type=image&order=desc'); if($files) : $keys = array_reverse(array_keys($files)); $j=0; $num = $keys[$j]; $image=wp_get_attachment_image($num, 'large', true); $imagepieces = explode('"', $image); $imagepath = $imagepieces[1]; $main=wp_get_attachment_url($num); $template=get_template_directory(); $the_title=get_the_title(); print "<img src='$main' alt='$the_title' class='frame' />"; endif; }
Apoi, deschide fiierul temei unde vrei sa afisezi thumbnail-ul si insereaza codul urmator:
<?php if ( (function_exists('has_post_thumbnail')) && (has_post_thumbnail()) ) { echo get_the_post_thumbnail($post->ID); } else { echo main_image(); } ?>
Daca esti un developer, asigura-te ca ai asta in tema ta.