WordPress hack: Cum înlocuieşti “[…]” în the_excerpt cu link de “Citeşte mai departe”

Mi-am bătut capul cam jumătate de zi, dar am reuşit să scriu o bucată de cod (de altfel, destul de simplă) care să-mi permită să scap de acel enervant “[…]” din coada excerpt-ului şi să-l mai şi transform într-un mod elegant de inserare a unui link de “Citeşte mai departe”. Codul e relativ simplu, mi-a luat mai mult pînă m-am prins că degeaba folosesc funcţia the_permalink(), atîta vreme cît n-o să-mi folosească la nimic. Era o variaţie, anume get_permalink().

exemplu-excerpt

Ce face codul? E un filtru care anulează efectul unei bucăţi a codului din core-ul WordPress-ului prin care este afişat excerpt-ul cu acea “coadă” cu trei puncte şi îl înlocuieşte cu o funcţie creată de mine (vezi imaginea de mai sus). Mai jos, codul (pe care, apropo, l-am tot căutat, dar n-am reuşit să-l găsesc pe nicăieri). Ca să fiţi siguri că funcţionează, înainte de folosire, verificaţi (mai bine spus, înlocuiţi) ghilimelele simple (adică cele de tip apostrof – ‘ -). Scuze pentru imagine, dar dacă publicam codul în versiune text… mi-ar fi scos în pagină un link. Deh…

cod-functie-excerpt

Bonus, şi funcţia plus codul care face posibilă scurtarea excerpt-ului de la 55 de cuvinte la cîte vreţi voi.

function new_excerpt_length($length) {
return 30;
}
add_filter(‘excerpt_length’, ‘new_excerpt_length’);

Apropo de folosire, ca să funcţioneze, se ia cu copy/paste şi se pune în fişierul functions.php din directorul template-ului, înainte de “?>“-ul din finalul fişierului. Atenţie!, efectul filtrului se vede doar acolo unde este folosită – în template – funcţia the_excerpt() în loc de the_content(). Adică, de regulă, în paginile de arhive (archive.php, tag.php etc.).

Nu în ultimul rînd, acel class=”more-link” setează stilul CSS al link-ului. De regulă, destul de multicele template-uri includ un astfel de stil. Altfel, poate fi oricînd creat unul, care se va aplica peste tot, inclusiv în cazul funcţiei the_content(), acolo unde plasaţi tag-ul <– !more –>.

NOTĂ: Nu mi-am bătut foarte mult capul, nu m-a interesat momentan, dar codul nu funcţionează (adică nu aplică link-ul la finalul excerpt-ului) acolo unde se foloseste un custom excerpt. Adică acel cîmp de sub editorul text din WordPress, unde poţi completa un articol cu un intro separat de articol. O să încerc să fac un hack şi pentru bucăţica aia, dar toate la momentul potrivit.

Distracţie plăcută.

Dacă îţi place acest blog şi vrei să-l susţii, cumpără de la eMag folosind acest link.

1 comentariu

  1. Hehe, si ne pacaleai ca nu stii PHP … ;)